0

需要对服务器(运行 IIS 7.5)中的 Error.log 文件授予什么样的权限,以便将错误写入 Error.log 文件?

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

4

3 回答 3

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.xml 将文件放置在您喜欢的任何位置。没有路径的文件的默认值是包含程序集 dll 的启动项目目录。

请参阅在 IIS 中网站使用的应用程序池。池确定 windows 身份。请参阅Pool 的高级设置选项卡。此处定义了要使用的标识方法。

于 2012-11-30T13:02:39.723 回答
0

我没有看到您的配置示例,但是..

我发现最好不要在开发之外使用平面文件。事件日志或数据库侦听器更适合生产中的 Web 应用程序。

如果您必须使用平面文件,则需要授予帐户(对于分配给 Web 应用程序的应用程序池)对应在其中创建文件的目录的写入权限。默认情况下,我认为这是 Web 应用程序的 bin目录,除非您在配置中的文件名中包含路径。

于 2012-11-28T19:23:15.447 回答
0

这可能取决于您的应用程序在什么上下文中运行。应用程序池线程负责写入日志,因此授予与您的应用程序池相同身份的读/写文件夹权限。我认为这是 NETWORKSERVICE 默认情况下。

于 2012-12-19T03:19:18.620 回答