在IIS 7中为应用程序池使用自定义帐户时出现500错误


11

我有一个非常简单的站点,在Windows Server 2008 SP2的IIS 7中只有静态文件。

当我尝试访问任何静态文件时,出现500错误。如果我将HTML文件重命名为具有aspx扩展名,则可以正常工作。

当将内置标识用于应用程序池时,该站点也可以正常工作。当我切换到对应用程序池使用自定义帐户时,会出现问题。我尝试使用本地帐户和域帐户在其下运行应用程序池。

我已经完全控制了网站目录和文件上的这些帐户。

打开跟踪将显示以下错误消息:
ModuleName:IIS Web核心
通知:2 HttpStatus
:500
HttpReason:内部服务器错误
HttpSubStatus:0 错误代码
:2147943746
ConfigExceptionInfo
通知:AUTHENTICATE_REQUEST 错误代码:
未提供所需的模拟级别,或提供的模拟级别是无效的。(0x80070542)

搜寻错误代码没有任何运气。

Answers:


9

解决的问题:本地安全策略中的“身份验证后模拟客户端”缺少IIS_IUSRS组。


为我工作了谢谢!但是除此之外,这是针对像我这样的虚拟人逐步执行的操作:开始>本地>安全策略>本地策略>用户权限分配>身份验证后模拟客户端>添加用户或组...>选择IIS_IUSRS
Wowe

1

您可以尝试更改此虚拟应用程序的应用程序池,并为此新池提供个人权限

授予特定池的权限,只需授予用户“ IIS APPPOOL \ YOUR_POOL_NAME”的权限


0

除了布朗尼的答案(是正确的,您还必须将此权利授予应用程序池帐户);如果IIS在使用WCF客户端调用它时向您发送此错误(+在IIS中启用Windows身份验证),则可能是因为给IIS的NTLM令牌的标志不允许它模拟调用者。

修改客户端的配置(默认):

<behavior name="NewBehavior">
  <clientCredentials>
    <windows allowedImpersonationLevel="Identification" />
  </clientCredentials>
</behavior>

对此:

<behavior name="NewBehavior">
  <clientCredentials>
    <windows allowedImpersonationLevel="Impersonation" />
  </clientCredentials>
</behavior>

查看本文以获取详细信息:WCF中的模拟和委派

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.