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

.net 在不同机器上测试WCF聊天应用程序,.net,wcf,web-services,.net,Wcf,Web Services,我有一个包含两个客户端的服务的解决方案。它们可以相互通信、发送消息和触发事件。 当我用一台机器进行测试时,它们工作得很好,但我把它们安装在不同的机器上,互联网是连接的,它们找不到彼此。既然我是自我托管我的服务,这可能是原因吗?我使用DualHttpBinding作为绑定配置。 我的情况是一个聊天应用程序,有两个客户端实例和一个服务,每一个都运行在不同的机器上,除了internet连接之外没有任何网络连接。DualHttpBinding要求两个客户端能够打开连接并相互发送消息。最有可能的情况是,其

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

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

一旦你上了互联网,这种通过HTTP的直接双向通信就很难实现。要调试它,我建议看一下哪一个是优秀的HTTP调试工具。你必须观察连接,看看客户端是否可以连接,如果不能,为什么会失败。然后,您必须修复导致此问题的连接问题


我不确定这是否适用于您,但使用net.tcp作为绑定并在某个地方有一个所有客户端都可以连接的服务器(由于net.tcp不要求服务器能够打开端口返回到客户端,它可以使用现有连接发送)将大大减少错误倾向。它只要求客户机能够连接到服务器,而不是服务器需要能够创建第二个连接回客户机,从而通过标准NAT配置工作。

联网是一个复杂的问题。可能有几个原因:未连接到服务器、端口阻塞(客户端或服务器)、设计不正确等;你能更详细地描述一下你当前的绑定配置吗?你能更具体一点吗?我的意思是,我们是否需要指定某种配置,以便在设计时执行此操作,或者WCF应该能够自动执行此操作?@Davide它正在使用DualHttpBinding来回调客户端并向它们发送一些消息。非常简单的功能。没有什么复杂的东西,真的谢谢。使用带有NetTcp绑定的服务的客户端是否可能不在物理网络中,而只使用internet作为连接平台?因为我的客户是不同国家的客户,只要他们能在互联网上看到对方。你需要这一端有一个开放的端口,互联网客户端可以连接到,但另一个客户端可以在NAT路由器后面,它仍然可以工作。这与配置web服务器基本相同。:)