我很困惑为什么有些东西会起作用。我正在配置这样的 wcf 服务:
<services>
<service name="ClientCommand" behaviorConfiguration="SomeServiceBehavior">
<endpoint contract="IClientCommand" binding="netTcpBinding" BindingConfiguration="TcpPort" address="net.tcp://localhost:1304" />
</service>
</services>
BindingConfiguration和behaviorConfiguration非常简单,只是配置一些超时。
在我的 exe 中,我像这样启动主机。
_serverHost = new ServiceHost(type); // implementing IClientCommand
_serverHost.Open();
这一切都非常简单并且有效,我可以从另一台电脑调用该服务。然而,在阅读了另一个问题(侦听 tcp 套接字)后,我觉得它不应该工作。当我绑定到本地主机该服务不应该从运行它的电脑外部访问吗?
我检查了电脑上的netstat,它确实绑定到IP地址“0.0.0.0”而不是“127.0.0.1”,解释了为什么它可以在另一台电脑上工作。
但我不明白为什么它从 localhost 变为“0.0.0.0”?
Net.tcp不限于一台机器上的通信,也许您正在考虑net.pipe?关于0.0.0.0:运行服务的机器上的主机文件是如何定义的?Here http://tech.pro/tutorial/855/wcf-tutorial-basic-interprocess-communication总的来说,这是一篇关于 WCF 的好文章。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)