需要对服务器(运行 IIS 7.5)中的 Error.log 文件授予什么样的权限,以便将错误写入 Error.log 文件?
我创建了一个名为 ErrorLog 的目录,并在 web.config 中设置了监听器,如下所示。
需要对服务器(运行 IIS 7.5)中的 Error.log 文件授予什么样的权限,以便将错误写入 Error.log 文件?
我创建了一个名为 ErrorLog 的目录,并在 web.config 中设置了监听器,如下所示。
正在使用的 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 的高级设置选项卡。此处定义了要使用的标识方法。
我没有看到您的配置示例,但是..
我发现最好不要在开发之外使用平面文件。事件日志或数据库侦听器更适合生产中的 Web 应用程序。
如果您必须使用平面文件,则需要授予帐户(对于分配给 Web 应用程序的应用程序池)对应在其中创建文件的目录的写入权限。默认情况下,我认为这是 Web 应用程序的 bin目录,除非您在配置中的文件名中包含路径。
这可能取决于您的应用程序在什么上下文中运行。应用程序池线程负责写入日志,因此授予与您的应用程序池相同身份的读/写文件夹权限。我认为这是 NETWORKSERVICE 默认情况下。