用于记录到平面文件跟踪侦听器的企业库

时间:2012-11-27 22:07:50

标签: enterprise-library error-logging

需要为服务器中的Error.log文件(运行IIS 7.5)提供哪种权限才能将错误写入Error.log文件?

我创建了一个名为ErrorLog的目录,并在web.config中设置了监听器,如下所示。       

3 个答案:

答案 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。