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

标签 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(使用Windows身份验证和模拟,都在web.config中)

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

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

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

为了尝试“解决”此问题,我们尝试了许多方法:
尝试过的应用程序池设置:托管管道模式:集成
尝试过的应用程序池设置:身份:NetworkService
尝试过的应用程序池设置:标识:LocalSystem
尝试过的应用程序池设置:加载用户配置文件:True
为我们的应用程序文件夹结构(对appname文件夹尝试,仅尝试Log文件夹,仅尝试appnameWebSite和Log文件夹),授予用户组对文件系统的完全控制权限
为我们的应用程序文件夹结构(尝试使用appname文件夹,仅尝试使用Log文件夹,仅尝试使用appnameWebSite和Log文件夹)将IIS AppPool [appname](与新的App Pool匹配)用户完全控制权授予文件系统

这些东西都没有帮助。同样,该应用程序将运行正常,仅不创建任何日志文件。

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

有什么建议么?帮助?问题?

谢谢!

最佳答案

我尝试授予所有可能的权限,但仍未获取任何日志文件。最终,我遇到了this,它建议更改我的日志文件目录的所有权。我检查了一下,并将目录所有权设置为SYSTEM。我将其更改为管理员,然后递归应用更改。我跳出了IIS,在浏览器中从该站点访问了一个网页,现在我有了日志文件。万岁!

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

关于ASP.NET/IIS7.5写入日志文件不起作用(权限,UAC,配置,???),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5985397/

相关文章:

c# - 没有代码隐藏的 ASP.net 页面

permissions - 如果从浏览器调用 php exec 不执行

php - HTTP 错误 500.0 - 内部服务器错误 发生未知的 FastCGI 错误

javascript - 使用 Mootools、jQuery 或 Ajax 查找城市和州的 ASP.NET Javascript 邮政编码

c# - 为什么它总是一个空值?

linux - 在 Linux 中阻止用户访问网络服务

php - 如何通过php网页执行crontab -l? Linux权限

c# - 从远程服务器读取证书哈希

asp.net - 如何为 WebApi 管道外的错误返回 JSON?

javascript - 包含 <meta http-equiv ="X-UA-Compatible"content ="IE=10"/> 的内容页面