我有一个使用 wsDualHttpBinding 的 wcf 简单程序。我将 server.exe 放在另一台计算机上(在我的 LAN 网络上)并通过客户端调用一个方法。回调在客户端成功调用。然后我将 server.exe 放在我的 VPS 服务器(在 Internet 上)并运行 client.exe,客户端抛出 TimeoutException。我使用 9090 端口进行服务器监听。我也关闭了双方的防火墙。
怎么了?请帮忙,这让我发疯了。
编辑: 服务器和客户端都需要有效的 IP 地址吗?
尝试在 server.exe 中发布带有元数据端点的 http 元数据,并在浏览器中打开客户端计算机上的 Web 服务页面。
我还建议您甚至在 Internet 上使用 nettcpbinding 而不是 wsDualHttpBinding,因为它更稳定、更持久,并且 AFAIK wsDualHttpBinding 需要两个端口来进行正常的双工对话(请参阅客户端绑定中的 ClientBaseAddress)。Tcp 需要一个
问题已经解决了!
在双工连接中,客户端和服务器都需要有效的 IP 地址。我改变了连接方式。我使用了netTcp。
反正tnx大家。
检查客户的配置。尝试增加以下设置:
<binding name="WSDualHttpBindingEndpoint"
openTimeout="00:01:00"
receiveTimeout="00:10:00"
sendTimeout="00:01:00"
验证服务操作是否被调用并及时返回。输入和退出方法时让服务写入日志。
还要验证端口 9090 未被阻塞。