我们在Network Service
帐户下的IIS中的同一台计算机上托管WCF服务和asp.net网站。
两个站点都启用了匿名和Windows身份验证。
该服务使用WsHttpBinding
当我们从WCF Test Client
调用服务时,一切正常,因为它发送常规域用户凭据,但是当asp.net调用服务时,我们得到例外:
类型:System.ServiceModel.Security.SecurityNegotiationException, System.ServiceModel,Version = 4.0.0.0,Culture = neutral, PublicKeyToken = b77a5c561934e089消息:调用者不是 通过服务验证。
似乎NT AUTHORITY\NETWORK SERVICE
未经过身份验证,但我不知道原因。
这是配置部分:
<service name="Wumte.Server.Host.EDocumentsCreationNonDual">
<endpoint address="" binding="wsHttpBinding" contract="Wumte.Server.Host.IEDocumentsCreationNonDual" bindingConfiguration="LargeMessageWsHttpBinding">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
<wsHttpBinding>
<binding name="LargeMessageWsHttpBinding" maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"/>
</binding>
</wsHttpBinding>