6

我很困惑为什么有些东西有效。我正在配置这样的 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”?

4

1 回答 1

0

Net.tcp 不限于在一台机器上进行通信,也许您正在考虑使用 net.pipe?关于 0.0.0.0:在运行服务的机器上如何定义主机文件? 是一篇关于 WCF 的好文章。

于 2013-03-15T10:07:28.610 回答