我刚刚使用net.tcp
实现了一个简单的WCF服务器。
首先,我使用127.0.0.1
作为服务器地址,客户端能够连接WCF服务。
一切都好。但是当我尝试使用内部IP 192.x.x.x
时,我收到一个错误:
无法建立连接,因为目标计算机主动拒绝它
知道是什么原因引起的吗?
最好的祝愿
PS:我在WCF上禁用了auth。甚至关闭防火墙...没有工作......
您是在客户端和服务器上使用192.x.x.x吗?我记得在一段时间内看到一个问题,对于TCP,需要匹配的客户端和服务器名称(与其中一个消息属性相关的东西),所以如果用“localhost”定义服务,那么客户端就会出现问题。
好吧,当我忘记安装必要的组件时,我收到此错误消息。见链接Configuring WCF Service with netTcpBinding
(步骤摘要)......
如果逻辑地址相同且服务器端点已配置为“listenUri”且客户端行为配置为使用<clientVia>
地址,则物理客户端和服务地址可能不同。在我们的例子中,这是我们的代理/防火墙配置所必需的。实际上,客户端调用防火墙,服务器在本地侦听转发的请求。
对于IIS托管的服务,请检查以下内容:
对于非IIS托管服务,您可能需要配置命名空间保留(URLACL)。 http://msdn.microsoft.com/en-us/library/ms733768.aspx
还要确保正在运行适当的Windows服务,例如Net.Tcp监听器。
如果您在Visual Studio中以调试模式运行,请确保您的解决方案端口号匹配。我看过几个实例,我选择了属性> Web>自动分配端口 - 并且端点来自(在本例中为我的silverlight应用程序)与自动生成的端口不匹配。我通常在.web中将端口更改为1318。
今天我发现如果你的WCF服务类中有循环引用,那么这个错误也会出现。我有一个方法无限地调用自己并导致此错误消息,这导致我在这里。
因此,如果其他建议都不起作用,请检查您的代码,看看您是否正在执行任何递归功能,并确保您没有陷入无限循环。