ASP.NET/IIS7.5写入日志文件不工作(权限、UAC、配置、??)

ASP.NET/IIS7.5写入日志文件不工作(权限、UAC、配置、??),asp.net,permissions,iis-7.5,uac,application-pool,Asp.net,Permissions,Iis 7.5,Uac,Application Pool,将ASP.NET应用程序迁移到Windows Server 2008 R2 x64和IIS7.5时遇到问题。问题是我们的ASP.NET应用程序会写入日志文件,而这些日志文件不会被写入。应用程序写入日志文件的唯一方式是,如果我以本地管理员用户身份登录服务器,或者如果我右键单击并以管理员身份运行IE,这两种方式都不是我们可以接受的解决方案 我们的平台是: Windows Server 2008 R2 x64(UAC设置为默认设置) IIS7.5 ASP.NET 4.0(在web.config中使用W

将ASP.NET应用程序迁移到Windows Server 2008 R2 x64和IIS7.5时遇到问题。问题是我们的ASP.NET应用程序会写入日志文件,而这些日志文件不会被写入。应用程序写入日志文件的唯一方式是,如果我以本地管理员用户身份登录服务器,或者如果我右键单击并以管理员身份运行IE,这两种方式都不是我们可以接受的解决方案

我们的平台是: Windows Server 2008 R2 x64(UAC设置为默认设置) IIS7.5 ASP.NET 4.0(在web.config中使用Windows身份验证和模拟)

我们的应用程序安装到: D:[应用程序名称] [appnameWebSite](所有的.aspx、.dll等文件都在这里) \日志(应用程序尝试将日志文件写入此文件夹)

在服务器上: 已创建新的应用程序池(名称:[appname],.NET 4.0,托管管道模式:Classic,标识:ApplicationPoolIdentity,加载用户配置文件:False,所有其他属性均为默认值) 已创建指向D:[appname][appnameWebSite]的IIS应用程序,并将其添加到新的应用程序池中(完全信任级别) 在本地管理员组中有一个域用户

使用上面列出的所有配置和默认设置,ASP.NET应用程序将不会写入日志文件。该应用程序在浏览器中运行正常,但没有log.txt文件

为了尝试“修复”此问题,我们尝试了许多方法: 已尝试应用程序池设置:托管管道模式:集成 已尝试应用程序池设置:标识:NetworkService 已尝试应用程序池设置:标识:LocalSystem 已尝试应用程序池设置:加载用户配置文件:True 为用户组提供了对应用程序文件夹结构的文件系统的完全控制权(仅限试用的appname文件夹、试用的日志文件夹、试用的appname网站和日志文件夹) 为IIS AppPool[appname](与新应用程序池匹配)用户提供了对应用程序文件夹结构文件系统的完全控制权(仅限试用appname文件夹、试用日志文件夹、试用appname网站和日志文件夹)

这些东西都没用。同样,应用程序运行正常,只是没有创建日志文件

如上所述,当应用程序运行时,创建日志文件的唯一方法是使用本地管理员帐户(因为他是超级用户,这很有意义)登录服务器,或者以管理员身份运行IE并提升权限


有什么建议吗?帮忙?有问题吗


谢谢

这件事我挣扎了一会儿。ApplicationPoolIdentity是用户组的成员,用户组的访问权限有限

在资源管理器中,右键单击要写入的文件夹,然后转到安全性。单击高级按钮。您将看到用户具有读取和执行权限,并且用户组可能具有或不具有特殊权限。如果没有,请单击“更改权限”,让用户能够创建文件/写入数据创建文件夹/追加数据。这仅限于此文件夹。我通常使用子文件夹,这样我就不会提供对整个网站的写访问

再次尝试创建日志文件。这是我需要设置的唯一权限,以使其正常工作。

好吧,在尝试每个IIS选项、用户和组帐户、文件系统权限、Process Explorer等天之后,我想我们已经让它正常工作了:

  • 我们将所有IIS应用程序池和网站设置重置为其默认值
  • 我们还将日志文件夹上的文件夹/文件系统权限重置为默认设置
  • 然后我们关闭了服务器上的Internet Explorer增强安全配置
和成功!无论是哪个用户使用ASP.NET应用程序,也不管他们是在服务器上还是在工作站上运行,日志文件都会按预期写入

我不知道在服务器上关闭Internet Explorer增强的安全配置是否是“正确”的做法,或者是否违反了任何最佳做法,但它似乎对我们有效


有人要添加什么吗?

我尝试授予所有可能的权限,但仍然没有得到任何日志文件。最后,我遇到了一个建议,建议更改我的日志文件目录的所有权。我检查了,目录所有权设置为SYSTEM。我将其更改为Administrators并递归地应用更改。我跳转了IIS,在浏览器中点击了网站上的网页,现在我有了日志文件。万岁


注意:提示我的是检查系统事件日志。我收到15006个错误,说“日志文件或目录C:\inetpub\logfiles\W3SVC1\some.log的所有者无效。这可能是因为另一个用户已经创建了日志文件或目录。”

对我来说,诀窍是为
系统
管理员
授予写权限,而不仅仅是日志文件夹本身,但是也包括路径中的每个文件夹。这不是权限在Windows中通常的工作方式,但IIS似乎对此非常特别。并不是说一开始就有很好的理由从ACL中删除这两个

如果怀疑这是问题所在,请检查Windows Logs/System下的事件日志。此问题显示为源HttpEvent中的错误条目,内容为“无法创建日志文件C:\path\to\logs\W3SVC1\u\u extend1.log。请确保日志目录正确,并且此计算机具有该目录的写入权限。”


另外,这适用于IIS 10,但也可能适用于其他版本。

谢谢您提供的信息。我尝试过在日志文件夹上使用文件系统权限,但仍然没有成功。正如我前面提到的,我有一个域用户,它位于服务器上的Administrators组中。我正在以该域用户的身份登录服务器。我让本地用户组对文件系统中的日志文件夹(即