2012-04-04 10 views
0

私は、Windows 2008 R2 Standard仮想サーバーにWCFサービスのスタックをインストールしています。 = "net.tcp:// localhostを:8738 /サービス/サービス"LOCALHOSTを使用し、2つのIPアドレスが使用されている場合、サービスはポートにどのようにバインドされますか?


エンドポイントアドレス:


これは、現時点で働くエンドポイントの多くは、以下の例を参照してくださいローカルホストにバインドされています単一のローカルIP(192.168.20.10)がNICにバインドされているためです。

私は別のローカルIPアドレス(192.168.20.11)を追加した場合:

1)localhostの参照は、サービスポートが両方のIPアドレスに公開されている意味ですか?

2)OSがどのIPをどのように決定するのですか?

はあなた スコット

答えて

1

localhostloopback addressIPv4: 127.0.0.1またはIPv6 ::1を指し、ありがとうございます。

サービスがループバックアドレスにバインドされている場合、サービスはそのホストでのみ使用できます。 1つのユースケースは、プロキシによってHTTPデーモンによってのみ公開されるWebサービスコンポーネント用です。インターフェイスにIPアドレスを追加すると、localhostにバインドされたサービスに違いはありません。

サービスがネットワークで利用できるようになっている場合、バインディングは通常*:portnumberです。これはすべてのIPアドレスをリッスンするので、別のIPをインターフェイスに追加すると、新しいIPアドレスでもサービスが利用できるようになります。

+0

返信いただきありがとうございます。これが私が混乱している理由を参照してください、私はlocalhostが127.0.0.1であり、サービスが127.0.0.1にバインドされていることを理解していますが、私は別のマシンからそのポートに接続できるようです。あなたが示唆していることが真実なら、それはどのように可能ですか? –

+0

たとえば、WCF SMSサービスをホストしています.WebサーバーのWebアプリケーションと通信しますが、SMSサービスのバインディングはすべてlocalhostを表示します。設定ファイルにはIPアドレスは書き込まれません。 –

+0

私はあなたのSMSサービスが同じマシン上の別のサービスによって公開(プロキシ)されていると思われます。 – MattH

1

net.tcp://localhost:4512のようなものを使用すると、ループバックアドレスが期待どおりにバインドされず、代わりにすべてのIPアドレスで接続を受け入れるようになることがわかりました(0.0.0.0:4512)。