客户端无法连接到服务器

时间:2012-10-25 06:34:18

标签: c# .net wcf wcf-client wcf-configuration

我是WCF的新手,所以我真的需要你的帮助。

我有两个使用WCF的程序。 如果它们在一台计算机上运行,​​并且客户端使用地址 net.tcp:\ Localhost:8001 \ MyService 连接到服务器(例如,地址为192.168.1.1),一切正常。 但是,当我将客户端的地址更改为 net.tcp:\ 192.168.1.1:8001 \ MyService 时,我收到system.timeoutexception,因为客户端无法连接服务器。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您可能需要允许外部访问防火墙中的端口。

只要您从localhostlocalhost进行通信,防火墙就不起作用,因为这些请求由环回适配器处理。

但是当从localhost与机器IP地址进行通信时,您正在发出由防火墙处理的网络请求(即使您仍然在物理上位于同一台计算机上)。

顺便说一句:对于服务器端,无论您是使用端点localhost还是192.168.1.1启动WCF服务都无关紧要。

修改
我写道,无论你是在localhost还是192.168.1.1上听,都是如此 - 只有当你只有一个网络适配器可用时才会这样。

只要有两个或更多网卡(例如:无线局域网已打开并且您通过电缆连接),localhost0.0.0.0将使服务侦听任何适配器。使用192.168.1.1将使服务仅侦听该IP地址上的连接。

这一点非常重要,尤其是在不同网络适配器成为不同(子)网络的成员的情况下。

例如:一个适配器连接到192.168.1网络,另一个适配器连接到192.168.2网络。如果您的服务在localhost0.0.0.0上进行侦听,则可以从两个网络进行侦听。如果它仅在192.168.1.1上收听,则它将无法用于192.168.2网络。

答案 1 :(得分:-2)

请检查“hosts”文件中是否包含“192.168.1.1”。试一试。

主机文件可在“C:\ Windows \ System32 \ drivers \ etc”

中找到