2012-10-25 48 views
-1

我是WCF新手,所以我真的需要你的帮助。客户端无法连接到服务器

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

感谢您的帮助。

+0

您是在ASP.NET开发服务器上还是在本地IIS实例上运行? –

+0

请记住,本地主机不能解析到您的特定IP地址,而是解析到127。*。*。*范围 –

+0

那么你有什么尝试? _“无法连接到服务器”_表示与网络有关的错误。你能ping通地址,telnet端口,是否有防火墙或路由器,等等。基本的网络调试。 – CodeCaster

回答

-2

请检查“192.168.1.1”是否包含在您的“主机”文件中。试试吧。

的hosts文件中可以找到 “C:\ WINDOWS \ SYSTEM32 \ drivers \ etc下”

+1

192.168.1.1不会进入主机文件,因为主机文件旨在提供IP地址以进行名称解析。Theres没有意义(它可能不会工作)只是将IP地址添加到主机文件。 –

+0

假设问题出在dev环境中,“192.168.1.1”可能无法访问。因此我建议在主机文件中包含ip。这在过去对我有用。 –

+0

在主机文件中放置一个IP地址(以及相应的主机名)只会*通过* hostname *进行通信才有意义,因为hosts文件用于解析主机的IP地址名称(类似于DNS所做的)。您可以*始终*通过IP地址在没有任何解析服务的计算机之间进行通信,因此在“hosts”文件中输入条目以启用与IP地址的通信不会有帮助 - 并且没有任何意义。我怀疑这是否是过去的工作解决方案 - 我敢打赌,你还有其他与网络有关的问题。 –

1

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

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

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

顺便说一下:对于服务器端来说,是否启动端点为localhost192.168.1.1的WCF服务并不重要。

编辑
我写这不要紧,你是否听上localhost192.168.1.1 - 如果你只有一个网络适配器可用,这是唯一真正的。

只要有两个或多个网卡(例如:无线LAN已打开并且通过电缆连接),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网络。

相关问题