ASP.NET/IIS7.5编写日志文件不起作用(权限,UAC,配置,???)

lmt*_*tag 9 asp.net permissions uac application-pool iis-7.5

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

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

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

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

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

为了尝试"修复"这个问题,我们尝试了很多东西:Tried Application Pool设置:Managed Pipeline Mode:Integrated Tried Application Pool设置:Identity:NetworkService Tried Application Pool设置:Identity:LocalSystem Tried Application Pool设置:加载用户配置文件:True Gave Users组对文件系统的完全控制为我们的应用程序文件夹结构(尝试了appname文件夹,仅尝试了Log文件夹,仅尝试了appnameWebSite和Log文件夹)给IIS AppPool [appname](匹配新的App Pool)用户完全控制到文件我们的应用程序文件夹结构的系统(尝试了appname文件夹,只尝试了Log文件夹,只尝试了appnameWebSite和Log文件夹)

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

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

有什么建议?救命?有问题吗?

谢谢!

Ora*_*son 9

我尝试授予每个权限,但仍然没有获取任何日志文件.最后我遇到了这个建议更改我的日志文件目录的所有权.我检查了,目录所有权设置为SYSTEM.我将其更改为管理员并递归应用更改.我弹出IIS,在浏览器中从网站点击一个网页,现在我有了日志文件.万岁!

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

  • 这对我有用,无需重新启动IIS. (3认同)

lmt*_*tag 5

好吧,在尝试了每个IIS选项,用户和组帐户,文件系统权限,Process Explorer等几天之后,我认为我们可以正常使用它:

  • 我们将所有IIS应用程序池和网站设置重置为其默认值
  • 我们还将日志文件夹中的文件夹/文件系统权限重置为默认设置
  • 然后我们关闭了服务器上的Internet Explorer增强安全配置

和成功!无论什么用户正在使用ASP.NET应用程序,无论他们是在服务器本身上还是在工作站上运行日志文件,都将按预期方式写入日志文件。

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

有没有人要补充?