Wcf服务异常“HTTP请求未经授权使用客户端身份验证方案”

时间:2015-04-01 10:45:02

标签: c# .net wcf .net-4.5

我在客户端获得异​​常,同时从外部供应商wcf服务进行处理,例如"The HTTP request is unauthorized with client authentication scheme 'Basic'. The authentication header received from the server was 'Basic realm="CASM"'". 我正在从Web服务请求大型数据某些时间点我得到异常。输入东西是我从wcf服务获取一些数据并在之后获得异常。所以我假设我是否需要微调请求?所以我不应该一次询问大数据,或者这是一个不同的问题。我确实喜欢显示“Error when adding web service reference in VS2012”的帖子,但没有运气。 任何人都可以告诉我这个例外背后可能的原因是什么。下面是我的webconfig部分,我在我的代码中使用用户名和密码

<binding name="Test" closeTimeout="00:01:00" openTimeout="00:01:00"
      receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false"
      bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
      maxBufferSize="6553600" maxBufferPoolSize="524288" maxReceivedMessageSize="6553600"
      messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
      useDefaultWebProxy="true">
      <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
      <security mode="TransportCredentialOnly">
        <transport clientCredentialType="Basic" proxyCredentialType="Basic"
          realm="" />
        <message clientCredentialType="UserName" algorithmSuite="Default" />
      </security>
    </binding>
  <endpoint address="http://testurl/as" binding="basicHttpBinding"
    bindingConfiguration="Test" contract="Testservice.Test" name="Test">
  </endpoint>

更新

另外一件事是realm="CASM"在异常中是什么,我无法在客户端配置中设置,intellisense没有给出

1 个答案:

答案 0 :(得分:0)

尝试更改此

 <security mode="TransportCredentialOnly">
    <transport clientCredentialType="Basic" proxyCredentialType="Basic"
      realm="" />
    <message clientCredentialType="UserName" algorithmSuite="Default" />
  </security>

这一行

<security mode="TransportCredentialOnly">
   <transport clientCredentialType="Anonymous"/>
   <message clientCredentialType="UserName" algorithmSuite="Default"/>
</security>