在不同的机器上测试WCF聊天应用程序

时间:2011-02-23 16:06:10

标签: .net wcf web-services

我有一个包含两个客户端服务的解决方案。他们可以相互通信,发送消息和发送事件。 当我用一台机器进行测试时,它们工作得很好,但是我将它们安装在不同的机器上,互联网已经连接,而且它们没有找到对方。既然我是自我托管我的服务可能是这个原因吗?我使用DuallHttpBinding作为绑定配置。 我的情况是一个具有两个客户端实例和一个服务的聊天应用程序,每个服务器在不同的计算机上运行,​​除了互联网连接之外没有任何网络连接。

1 个答案:

答案 0 :(得分:0)

DualHttpBinding要求两个客户端能够打开连接并相互发送消息。很可能其中一个客户端位于不能接受传入连接的防火墙后面,没有端口转发的NAT路由器,或者其他客户端根本没有正确的地址来查找它。

通过HTTP进行这种直接的双向通信,一旦上网就很难做到。为了调试它,我建议你看看Fiddler这是一个很好的HTTP调试工具。您必须观察连接并查看客户端是否可以连接,如果没有,为什么它会失败。然后,您将必须解决导致该问题的连接问题。

我不确定它是否适合您,但是使用net.tcp作为绑定并且在所有客户端都可以连接到的服务器上(因为net.tcp不能要求服务器能够打开一个端口回客户端,它可以使用现有的连接发送)。它只需要客户端能够连接到服务器,而不是服务器需要能够创建第二个连接回客户端,从而通过标准NAT配置工作。