为 AppPool 使用自定义标识时,StaticFile 上出现 HTTP 错误 500.0

Posted

技术标签:

【中文标题】为 AppPool 使用自定义标识时,StaticFile 上出现 HTTP 错误 500.0【英文标题】:HTTP Error 500.0 on StaticFile when using custom identity for AppPool 【发布时间】:2014-07-24 08:45:20 【问题描述】:

我在带有 IIS 8.5 的 Windows 2012 R2 服务器上部署了一个 MVC4 Web 应用程序。 我将应用程序池配置为使用自定义域帐户运行,因为 Web 应用程序需要在启用 Windows 身份验证的情况下调用网络上的另一个 Web 服务。

当我尝试从浏览器访问该页面时,我的 .css、.js 文件收到许多“错误 500”。 当我尝试直接浏览这些文件之一时,我得到一个“HTTP 错误 500.0 - 内部服务器错误”页面,而不是脚本或 css 的内容。我尝试了一个简单的 .txt 文件,但我得到了同样的错误。

详细错误信息:

模块:IIS Web 核心 通知:AuthenticateRequest 处理程序:静态文件 错误代码:0x80070542 请求的 URL:http://hostname:8082/test.txt 物理路径:C:\inetpub\wwwroot\aaa\test.txt 登录方式:协商 登录用户:DomainName\MyUserLogin

在服务器上,我将整个 C:\inetpub\wwwroot\aaa 文件夹和子文件夹的完整 NTFS 权限授予“所有人”。

我将运行应用程序池的帐户设置为本地“管理员”组的一部分。它没有改变任何东西,我仍然收到相同的错误消息。

但是,如果我直接使用 localhost 从服务器打开网页,一切正常。

所以我在这里没有想法了。 有什么建议吗?

谢谢!

【问题讨论】:

作为一个测试,如果您使用LocalSystem 作为您的应用程序池标识,是否可以正常工作?如果不是,这听起来像一个配置问题。也许您没有在服务器上安装所有功能和角色。 感谢您的建议。但这不起作用,因为稍后 Web 应用程序需要调用另一个 Web 服务,而 LocalSystem 没有足够的权限来访问它。 但我发现了一些东西,如果我将应用程序池“托管管道模式”从“集成”更改为“经典”,一切正常。试图用这个来理解两者之间的区别:***.com/questions/716049/… 【参考方案1】:

我在这里找到了我的问题的答案(相同但使用登录方法:匿名): Unauthorized access error to html pages in IIS 7.0

本质上:“经过一番努力,我发现在 IIS 管理器->我的站点->身份验证->匿名身份验证->编辑用于匿名身份验证的身份默认设置为特定用户 (IUSR)。设置它使用为我修复的应用程序池标识”

【讨论】:

【参考方案2】:

这在 IIS 10 中也适用于我。谢谢!

顺便说一句,我还从https://serverfault.com/questions/50160/500-error-when-using-custom-account-for-application-pool-in-iis-7 找到了另一个解决方案 “为我工作,谢谢!但此外,对于像我这样的傻瓜,这里是如何一步一步地做到这一点:开始 > 本地 > 安全策略 > 本地策略 > 用户权限分配 > 身份验证后模拟客户端 > 添加用户或组... > 选择 IIS_IUSRS – Wowe" 由于没有许可,我无法尝试此替代方法

【讨论】:

以上是关于为 AppPool 使用自定义标识时,StaticFile 上出现 HTTP 错误 500.0的主要内容,如果未能解决你的问题,请参考以下文章

使用自定义访问者时自定义类型的 Boost 变体失败(源自 boost::static_visitor)

Sharepoint - 模拟应用程序池身份

Static的使用

用户 'IIS APPPOOL**' 登录失败的解决方案(项目部署到本地IIS上打开网页出现报错)

IIS7.5 用 IIS AppPool应用程序池名 做账号 将各站点权限分开

php之定义大字符串数据时使用定界符来标识