需要为服务器中的Error.log文件(运行IIS 7.5)提供哪种权限才能将错误写入Error.log文件?
我创建了一个名为ErrorLog的目录,并在web.config中设置了监听器,如下所示。
答案 0 :(得分:2)
正在播放的Windows身份(取决于您的身份验证方式)
var principal = ClaimsPrincipal.Current; //normally this reverts to Thread.CurrentPrincipal, but can be changed
return principal.Identity.Name;
或
var windowsIdentity = WindowsIdentity.GetCurrent();
if (windowsIdentity != null)
{
return windowsIdentity.Name;
}
执行Windows身份将需要在目录中创建权限并对EL配置中指定的文件具有写权限。 您可以使用config将文件放在任何您喜欢的位置。没有路径的文件的默认值是包含程序集dll的启动项目目录。
在IIS中查看网站使用的应用程序池。池确定Windows标识。查看游泳池的高级设置标签。这里定义了要使用的身份方法。
答案 1 :(得分:0)
我没有看到您的配置示例,但是..
我发现最好不要在开发之外使用平面文件。事件日志或数据库侦听器更适合生产中的Web应用程序。
如果必须使用平面文件,则需要为该帐户(对于分配给Web应用程序的应用程序池)提供对应创建该文件的目录的写访问权。默认情况下,我认为这是Web应用程序的bin目录,除非在配置中的文件名中包含路径。
答案 2 :(得分:0)
这可能取决于您的应用程序在哪个上下文中运行。应用程序池线程负责编写日志,因此为读取/写入文件夹授予与应用程序池相同的身份。我认为默认情况下这是NETWORKSERVICE。