我正在尝试做一些我认为应该非常简单的事情,但我根本没有运气。我有一个简单的Hello World WCF服务,我在IIS 7中托管。该服务使用默认的应用程序池工作正常。但是,当我创建一个新的应用程序池并使用域帐户运行该应用程序池时,我在调用该服务时出错。我确信我需要进行配置更改,但我不知道它们是什么。我得到的错误是
“安全支持提供程序接口(SSPI)身份验证失败。服务器可能未在身份为”host / ep2t-ifs01“的帐户中运行。如果服务器在服务帐户(例如网络服务)中运行,请指定帐户的ServicePrincipalName作为服务器EndpointAddress中的标识。如果服务器在用户帐户中运行,请在帐户的EndpointAddress中将帐户的UserPrincipalName指定为标识。“
这种类型的安全性不是我非常了解的,所以没有任何建议太简单。在这一点上的任何帮助将不胜感激。这是我的web.config文件中的相关部分:
答案 0 :(得分:3)
这个问题非常棘手。以下是您可以检查以了解问题的资源列表(按特定顺序):
最后,您可能需要为您的域帐户创建一个SPN,该帐户链接到您要部署到的服务器。这需要域管理员权限。更多信息here
答案 1 :(得分:0)
由于某种原因,我的web.config部分没有保存...
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="basicServiceBehavior">
<serviceMetadata httpGetEnabled="True" />
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="WebSyncPrototypeMVCApp.Service1" behaviorConfiguration="basicServiceBehavior">
<endpoint address="" binding="wsHttpBinding" contract="WebSyncPrototypeMVCApp.IService1" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>