我们有一个具有多个客户机的WCF服务来调度客户机之间的操作。它在XP上工作得很好。转到Win7,我只能将客户机连接到同一台计算机上的服务器。在这一点上,我认为这与ipv6有关,但我对如何继续感到困惑。
尝试连接到远程服务器的客户端出现以下异常:
System.ServiceModel.EndpointNotFoundException:无法连接到net.tcp://10.7.11.14:18297/zetec/service/scheduler service/scheduler。连接尝试持续了00:00:21.0042014的时间跨度。TCP错误代码10060:连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接主机未能响应10.7.11.14:18297,连接尝试失败。--->system.net.sockets.socketException:连接尝试失败,因为连接方在一段时间后没有正确响应,或者由于连接主机未能响应10.7.11.14:18297而建立的连接失败。
服务配置如下:
<system.serviceModel>
<services>
<service
name="SchedulerService"
behaviorConfiguration="SchedulerServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost/zetec/Service/SchedulerService"/>
</baseAddresses>
</host>
<endpoint address="net.tcp://localhost:18297/zetec/Service/SchedulerService/Scheduler"
binding="netTcpBinding"
bindingConfiguration = "ConfigBindingNetTcp"
contract="IScheduler" />
<endpoint address="net.tcp://localhost:18297/zetec/Service/SchedulerService/Scheduler"
binding="netTcpBinding"
bindingConfiguration = "ConfigBindingNetTcp"
contract="IProcessingNodeControl" />
</service>
</services>
<bindings>
<netTcpBinding>
<binding name = "ConfigBindingNetTcp" portSharingEnabled="True">
<security mode="None"/>
</binding>
</netTcpBinding >
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="SchedulerServiceBehavior">
<serviceDebug includeExceptionDetailInFaults="true" />
<serviceThrottling maxConcurrentSessions="100"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
客户机连接方式如下:
String endPoint = "net.tcp://" + GetIPV4Address(m_SchedulerHostAddress) + ":" + m_SchedulerHostPort.ToString(CultureInfo.InvariantCulture) + "/zetec/Service/SchedulerService/Scheduler";
NetTcpBinding binding = new NetTcpBinding();
binding.Security.Mode = SecurityMode.None;
m_Channel = new DuplexChannelFactory<IProcessingNodeControl>(this, binding, endPoint);
m_IProcessingNodeControl = m_Channel.CreateChannel();
我已经检查过我的防火墙十几次了,但我想可能是我遗漏了什么。已尝试禁用Windows防火墙。我尝试将localhost更改为ipv4地址以尝试远离ipv6,我尝试删除任何反ipv6代码。
不知道这是否意味着什么,但是:
Microsoft Telnet>开放时间:2014年11月10日,18297
连接到10.7.11.14…无法打开与主机的连接,在端口18297上:
连接失败
不幸的是,telnet测试似乎不是关键。当服务运行时,我已经成功地从本地主机和远程计算机连接到我的服务的端口,但我的客户机无法从远程计算机工作。
看起来连接到本地主机并不总是有保证的。桌面(win7/32)工作,笔记本(win7/64)不工作。不过,其他Win7/64框也可以工作。可能是因为笔记本电脑上有多个网卡?也不能解释在测试人员的系统上连接失败。
我设置了两台完全禁用IPv6的Win7计算机(使用0xffffffff作为
http://support.microsoft.com/kb/929852
)没有帮助。