未经授权使用客户端身份验证方案NTLM

时间:2012-10-03 22:33:30

标签: c# wcf web-services windows-server-2008

我从正在调用WCF服务的ASPX页面收到以下错误。

  

HTTP请求未经授权使用客户端身份验证方案'Ntlm'。从服务器收到的身份验证标头是“NTLM”。

我处于负载均衡的Web服务器环境中,在客户端ASPX页面访问相同的服务器。

例如:
服务器A上的ASPX页面 - >服务器B上的WCF服务=没有问题。
服务器B上的ASPX页面 - >服务器上的WCF服务C =没有问题。
服务器B上的ASPX页面 - >服务器B上的WCF服务=上面的错误。

服务器是IIS 7.5,WCF服务当前配置为使用匿名和Windows身份验证作为网络服务帐户运行。

这与环回保护有什么关系吗?我目前无法在单个服务器环境中复制这些结果,其中应用程序和服务托管在同一台计算机上。

以下是我对ASPX页面和服务的绑定:

客户端:

<system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="BasicHttpBinding_Imyservice">
          <security mode="TransportCredentialOnly">
            <transport clientCredentialType="Ntlm" />
          </security>
        </binding>
      </basicHttpBinding>
    </bindings>
    <client>
      <endpoint address="http://loadbalancedserver/myservice/myservice.svc"
        binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_Imyservice"
        contract="myservice.Imyservice" name="BasicHttpBinding_Imyservice" />
    </client>
  </system.serviceModel>

WCF服务:

<system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="BasicHttpEndpointBinding">
          <security mode="TransportCredentialOnly">
            <transport clientCredentialType="Ntlm" />
            <message clientCredentialType="UserName" algorithmSuite="Default" />
          </security>
        </binding>
      </basicHttpBinding>
    </bindings>
    <services>
      <service name="myservice.Service.myservice">
        <endpoint address="" bindingNamespace="http://services.company.net/myservice"
          binding="basicHttpBinding" bindingConfiguration="BasicHttpEndpointBinding"
          contract="myservice.Imyservice" />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>  

1 个答案:

答案 0 :(得分:2)

如果有人遇到此问题,由于IIS环回问题, 。来自http://support.microsoft.com/kb/896861的注册表修复工作成功了。