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();

それはすべて非常にシンプルで機能します。別の PC からこのサービスを呼び出すことができます。ただし、別の問題 (tcp ソケットをリッスンする) を読んだ後、動作しないはずの印象を受けました。localhostにバインドしているので、実行中の PC の外部からサービスにアクセスできないようにする必要がありますか?
PCでnetstatを確認したところ、「127.0.0.1」ではなくIPアドレス「0.0.0.0」にバインドされ、別のPCから動作する理由が説明されました。

しかし、なぜlocalhostから「0.0.0.0」になるのかわかりませんか?

4

1 に答える 1

0

Net.tcp は 1 台のマシンでの通信に限定されません。おそらく、net.pipe で考えているのでしょうか? 0.0.0.0 について: サービスを実行しているマシンでホスト ファイルはどのように定義されていますか? これは、一般的なWCFに関する優れた記事です。

于 2013-03-15T10:07:28.610 に答える