Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在托管应用程序中写入日志_C#_Asp.net_.net_Asp.net Mvc_Iis - Fatal编程技术网

C# 在托管应用程序中写入日志

C# 在托管应用程序中写入日志,c#,asp.net,.net,asp.net-mvc,iis,C#,Asp.net,.net,Asp.net Mvc,Iis,我们创建了一个C MVC应用程序。我们已经成功地主持了这个网站,我们能够正常运行。问题是,当我们使用log4net将日志文件创建到位于..inetpub/mysite/errorLogs的errorLogs文件夹中时。但是它不允许在那里写文件 此外,我还尝试使用以下方法在文件中进行简单写入: System.IO.File.AppendAllTextsFilePath,测试内容 路径..inetpub/mysite/App_Data/errorLogs 但什么都没有发生。查看权限时,我们对App_

我们创建了一个C MVC应用程序。我们已经成功地主持了这个网站,我们能够正常运行。问题是,当我们使用log4net将日志文件创建到位于..inetpub/mysite/errorLogs的errorLogs文件夹中时。但是它不允许在那里写文件

此外,我还尝试使用以下方法在文件中进行简单写入: System.IO.File.AppendAllTextsFilePath,测试内容

路径..inetpub/mysite/App_Data/errorLogs

但什么都没有发生。查看权限时,我们对App_数据文件夹拥有所有权限,但会引发错误:

“/”应用程序中出现服务器错误

无法访问路径“…\inetpub\mysite\App\u Data\Logs\20151026” 否认

描述:在执行过程中发生未处理的异常 当前的web请求。请查看堆栈跟踪以了解更多信息 有关错误的信息及其在代码中的来源

异常详细信息:System.UnauthorizedAccessException:访问 路径“…\inetpub\mysite\App\u Data\Logs\20151026”被拒绝

ASP.NET无权访问请求的资源。考虑 向ASP.NET请求授予对资源的访问权限 身份ASP.NET通常具有基本进程标识 {MACHINE}\ASPNET(位于IIS 5上)或IIS 6和IIS 7上的网络服务,以及 在以下情况下使用的IIS 7.5上配置的应用程序池标识: 应用程序没有模拟。如果申请是 通过模拟,身份将为 匿名用户通常是IUSR_MACHINENAME或经过身份验证的 请求用户

要授予ASP.NET对文件的访问权限,请在文件中的文件上单击鼠标右键 在浏览器中,选择属性并选择安全选项卡。单击添加 添加适当的用户或组。突出显示ASP.NET帐户, 并选中所需访问权限的框


是否有其他方法可以为我的网站编写日志?

尝试将IIS\u IUSR添加到日志权限文件夹。

尝试将IIS\u IUSR添加到日志权限文件夹。

在我的情况下,我希望在应用程序池中设置的用户是拥有使用file.AppendAllText编写的文件的用户

但是,如果设置了,则使用的是您连接为的用户


在我的例子中,主网站是作为一个特定用户连接的,同一个用户在应用程序池中,但我有一个虚拟应用程序,它使用同一个应用程序池,但作为直通身份验证连接。因此,虚拟应用程序写入的任何文件的所有者都是名为IUSR的本地用户。

在我的情况下,我希望在应用程序池上设置的用户是将拥有使用file.AppendAllText写入的文件的用户

但是,如果设置了,则使用的是您连接为的用户


在我的例子中,主网站是作为一个特定用户连接的,同一个用户在应用程序池中,但我有一个虚拟应用程序,它使用同一个应用程序池,但作为直通身份验证连接。因此,虚拟应用程序写入的任何文件的所有者都是一个名为IUSR的本地用户。

您似乎没有对该文件夹的写入权限。我们已从WebControl Center的“文件权限”选项中授予写入权限,他们也显示了所有权限,然后也没有写入任何内容。是否有其他方法在托管路径中写入?您在该文件夹中没有写入权限。您需要手动打开文件夹属性并将权限更改为完全控制。在IIS中,右键单击应用程序池并将.NET Framework设置为集成。尝试向appender配置添加最小锁定,例如,您似乎没有对该文件夹的写访问权。我们已从WebControl Center从文件权限授予写权限选项,它们也会显示所有权限,然后也不会写入任何内容。是否有其他方法在托管路径中写入?您在该文件夹中没有写入权限。您需要手动打开文件夹属性并将权限更改为完全控制。在IIS中,右键单击应用程序池并将.NET Framework设置为集成。请尝试向appender配置添加最小锁定,例如。