0

我已经搜索并尝试应用其他帖子中给出的解决方案,但我还不能解决我的问题。

我必须使用 wsDualHttpBinding 进行双工连接。当我尝试在与 WCF 服务器相同的机器上运行我的客户端时,它可以完美运行,但是当我将客户端移动到同一域上的其他机器时,它返回错误“调用者未通过服务身份验证”

这是我客户端上的 app.config

<wsDualHttpBinding>
  <binding name="duplexendpoint" 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="Message">
      <message clientCredentialType="Windows" negotiateServiceCredential="true" algorithmSuite="Default"/>
  </security>

  </binding>
</wsDualHttpBinding>

然后我尝试通过代码提供凭证:

client.ClientCredentials.Windows.ClientCredential.UserName = "serverusername";
client.ClientCredentials.Windows.ClientCredential.Password = "serverpassword";
client.ClientCredentials.Windows.ClientCredential.Domain = "serverdomain";

并给出错误“客户端无法在配置的超时时间内完成安全协商”

有什么办法可以解决我的问题吗?谢谢。

4

1 回答 1

0

好的,我找到了解决问题的方法,我必须从客户端机器上关闭防火墙。

于 2012-12-21T03:20:22.423 回答