使用自定义身份验证的应用程序池时,StaticFile 上出现 HTTP 错误 500.0

19

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

当我尝试从浏览器访问页面时,我的.css、.js文件会显示多个"错误500"。 当我尝试直接浏览其中一个文件时,会显示"HTTP错误500.0-内部服务器错误"页面,而不是脚本或css的内容。我使用简单的.txt文件进行测试,并获得相同的错误。

详细错误信息:

  • 模块:IIS Web Core
  • 通知:AuthenticateRequest
  • 处理程序:StaticFile
  • 错误代码:0x80070542
  • 请求URL:http://{hostname}:8082/test.txt
  • 物理路径:C:\inetpub\wwwroot\aaa\test.txt
  • 登录方法:Negotiate
  • 登录用户:{DomainName}\{MyUserLogin}

在服务器上,我为整个C:\inetpub\wwwroot\aaa文件夹和子文件夹授予了"Everyone"的完全NTFS权限。

我使运行应用程序池的帐户成为本地"管理员"组的一部分。但它并没有改变任何东西,我仍然得到相同的错误消息。

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

所以,我已经没有任何想法了。 有什么建议吗?

谢谢!


作为测试,如果您将LocalSystem用于应用程序池标识,是否可以正常工作?如果不能,那么这似乎是一个配置问题。也许您没有在服务器上安装所有功能和角色。 - Rick S
谢谢您的建议。但是这不可行,因为稍后Web应用程序需要调用另一个Web服务,并且LocalSystem没有足够的权限来访问它。 - Yann
1
但我发现了一些东西,如果我将应用程序池的“托管管道模式”从“集成”更改为“经典”,那么一切都可以正常工作。 尝试通过此链接理解两者之间的区别:https://dev59.com/bHRB5IYBdhLWcg3wHkPi - Yann
3个回答

37
我在这里找到了解决我的问题的答案(与原问题相同,但登录方法为匿名):IIS 7.0 中 HTML 页面的未经授权访问错误 本质上来说:“经过一些尝试,我发现在 IIS 管理器 -> 我的站点 -> 认证 -> 匿名认证 -> 编辑,用于匿名认证的身份默认设置为特定用户(IUSR)。将其设置为使用应用程序池标识为我解决了问题。” 这里输入图片描述

当我将应用程序池作为域服务帐户运行时,这对我在IIS 10 / Windows Server 2019上起作用。 我只是请求一个静态CSS文件时会出现500服务器错误。 - Greg Burghardt
这里是另一个IIS 10 / 2019堆栈,它起作用了!在被卡了几天之后,终于可以继续工作了。不知道为什么默认设置与环境中的其他服务器不同。 - Fabo.sk

1

这对我在IIS 10中也有效。谢谢!

顺便说一下,我还从https://serverfault.com/questions/50160/500-error-when-using-custom-account-for-application-pool-in-iis-7找到了另一个解决方案。 "对我有用,谢谢!但是,以下是像我这样的蠢蛋逐步执行的方法:开始 > 本地 > 安全策略 > 本地策略 > 用户权限分配 > 在身份验证后模拟客户端 > 添加用户或组... > 选择IIS_IUSRS - Wowe" 由于没有权限,我无法尝试此替代方法。


0
在我的情况下,我将应用程序池身份设置为匿名身份验证。我禁用并重新启用了匿名身份验证,所有问题都得到了解决。这是我十年来第一次遇到这种情况!感谢浪费了我一个小时的时间。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接