我很困惑,为什么有些东西有效。我配置WCF服务是这样的: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();
这一切都非常简单,它的工作原理,我可以从不同的PC调用此服务。然而,在阅读了另一个问题(在tcp套接字上侦听)之后,我觉得它应该不起作用。由于我绑定到本地主机该服务不应该从它运行的电脑外部访问?
我检查了电脑上的netstat,它确实绑定了IP地址“0.0.0.0”而不是“127.0.0.1”,解释了为什么它可以从另一台电脑上运行。
但我不明白为什么它从本地到“0.0.0.0”?
我挖得更深一点,只是为了弄得更加困惑。如果我使用'net.tcp:// 127.0.0.1/service',它确实会绑定到环回,并且它不能从pc外部访问。然而,'net.tcp:// localhost/service'会绑定到0.0.0.0,并且可以从环回外部访问。为什么? – Greuntesop 2013-03-15 13:04:33