WCF错误:WsDualHttpBinding中的服务未对调用者进行身份验证

时间:2011-12-21 18:04:52

标签: winforms wcf exception

我目前正在开发一个发布订阅wcf服务。尝试在另一台计算机上运行一台计算机上的订户(winforms app)和服务(在winforms app上运行)。连接时,它会给出SecurityNegotiationException,后跟错误消息

  

未通过服务

验证来电者

客户端配置:

<system.serviceModel>
<bindings>
  <wsDualHttpBinding>
    <binding name="WSDualHttpBinding_IPostingContract" clientBaseAddress="http://192.168.1.101:8000/wcfClient/" closeTimeout="00:01:00"
        openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
        bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
        maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
        messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true">
      <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
          maxBytesPerRead="4096" maxNameTableCharCount="16384" />
      <reliableSession ordered="true" inactivityTimeout="00:10:00" />
      <security mode="None">
        <message clientCredentialType="None" negotiateServiceCredential="False"/>
      </security>
    </binding>
  </wsDualHttpBinding>
</bindings>

<client>
  <endpoint address="http://192.168.1.101:8888/PostingContract/Posting"
      binding="wsDualHttpBinding" bindingConfiguration="WSDualHttpBinding_IPostingContract"
      contract="IPostingContract" name="WSDualHttpBinding_IPostingContract">
  </endpoint>
</client>

服务配置:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>
    <bindings>
  <wsDualHttpBinding>
    <binding name="WSDualHttpBinding_IPostingContract" clientBaseAddress="http://localhost:8000/wcfClient/" closeTimeout="00:01:00"
        openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:00:20"
        bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
        maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
        messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true">
      <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
          maxBytesPerRead="4096" maxNameTableCharCount="16384" />
      <reliableSession ordered="true" inactivityTimeout="00:10:00" />
      <security mode="None" />
    </binding>
  </wsDualHttpBinding>
</bindings>

如果我将客户端的安全模式更改为Message(即原始模式),即使等待5分钟后我也会得到一个timeoutexception。在阅读了其他人提出的大多数问题之后,大多数人都建议不要这样做。

请注意,这是WSDualHttpBinding而不是基本绑定。

0 个答案:

没有答案