我试图创建适配器服务(调用WCF服务的Web API)。我经历了很多标题相似的问题,似乎无法解决问题。谁能帮忙。
除了配置web.config之外,还有其他我想念的东西吗。
我添加了服务参考,并如下更新了web.config
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpEndpoint">
<security mode="Transport" >
<transport clientCredentialType="Ntlm" proxyCredentialType="None" realm=""/>
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="https://service.com/service-Hosted-somewhere-else.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpEndpoint"
contract="Service" name="BasicHttpEndpoint">
</endpoint>
</client>
</system.serviceModel>
堆栈跟踪如下
System.ServiceModel.Security.MessageSecurityException:HTTP请求未经客户端身份验证方案'Ntlm'的授权。从服务器接收到的认证标头是“NTLM TlRMTVNTUAACAAAAEAAQADgAAAAFgpmiGd2ol9pcGzEAAAAAAAAAAN4A3gBIAAAABgGxHQAAAA9JAE4AVABFAFIATgBBAEwAAgAQAEkATgBUAEUAUgBOAEEATAABAB4AUgBTAEsAUAAtAE0ARQBMAC0ATwBQAFQAOABFAFYABAAqAGkAbgB0AGUAcgBuAGEAbAAuAHMAdQBuAGcAYQByAGQALgBjAG8AcgBwAAMASgBSAFMASwBQAC0ATQBFAEwALQBPAFAAVAA4AEUAVgAuAGkAbgB0AGUAcgBuAGEAbAAuAHMAdQBuAGcAYQByAGQALgBjAG8AcgBwAAUAGABzAHUAbgBnAGEAcgBkAC4AYwBvAHIAcAAHAAgAcg4PLuVF1AEAAAAA”。 ---> System.Net.WebException:远程服务器返回错误:(401)未经授权。 ---> System.ComponentModel.Win32Exception:安全凭据在System.Net.NTAuthentication.GetOutgoingBlob(Byte [] entryBlob,布尔型throwOnError,SecurityStatus&statusCode)的安全包中不可用\ r \ n在System.Net System.Net.NtlmClient.DoAuthenticate(字符串质询,WebRequest WebRequest,ICredentials凭据,布尔值PreAuthenticate)的.NTAuthentication.GetOutgoingBlob(字符串入库Blob)\ r \ n System.Net.NtlmClient.Authenticate(字符串质询,WebRequest) webRequest,ICredentials凭据)\ r \ n在System.Net.AuthenticationManagerDefault.Authenticate(字符串质询,WebRequest请求,ICredentials凭据)\ r \ n在System.Net.AuthenticationState.AttemptAuthenticate(HttpWebRequest httpWebRequest,ICredentials authInfo)\ r \ n在System.Net.HttpWebRequest.CheckResubmitForAuth()\ r \ n在System.Net.HttpWebRequest.CheckResubmit(Exception&e,Boolean&disableUpload)\ r \ n ---内部异常堆栈跟踪的结尾--- \ r \ n在System.Net.Htt pWebRequest