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

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

当我尝试访问任何静态文件时,我得到一个500错误。 如果我重命名一个html文件有一个aspx扩展它工作正常。

使用应用程序池的内置身份时,该网站也可以正常工作。 当我切换到使用应用程序池的自定义帐户时,会发生此问题。 我曾尝试使用本地和域帐户来运行下的应用程序池。

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

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

我没有任何运气与谷歌search错误代码。

Prolem Solved:本地安全策略中的“在身份validation后模拟客户端”中缺lessIIS_IUSRS组。

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

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

除了布朗妮的回答(这是正确的,你必须把这个权利给应用程序池账户)。 如果IIS在使用WCF客户端(在IIS中启用了Windows身份validation)调用它时发送了此错误,则可能是因为提供给IIS的NTLM令牌的标志不允许它模拟调用方。

修改你的客户端的configuration(默认):

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

对此:

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

有关详细信息,请参阅此文章: WCF中的模拟和委派