我昨天发布了一个关于如何使用WCF服务启用模拟的问题:WCF service not impersonating specified user in config?
我启用了aspnetCompatibilityMode但是当我更新我的服务代理时,它说“服务无法激活,因为它需要asp网络兼容性”。我不完全确定这意味着什么。如果我将设置更改为AspNetCompatibilityRequirementsMode.Allowed,则不会启用模拟。我尝试在web.config和class属性中启用该设置。
如果不设置我的服务的应用程序池以我需要的用户身份运行,有没有办法解决这个问题?感谢。
答案 0 :(得分:14)
您必须在托管服务的网站的web.config中启用AspNetCompatibility:
<system.serviceModel>
...
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
</system.serviceModel>
因为您要使服务实现依赖于ASP.NET,所以应该使用以下命令标记服务类:
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
AspNetCompatibilityRequirements.RequirementMode
的默认值为NotAllowed
,因此这很可能是您例外的原因。