2012-03-13 12 views
1

私は、System.ServiceModel.Discovery.UdpDiscoveryEndpointを使用してws-discoveryを実装する一連のWCFサービスを用意しています。サーバーにディスカバリー要求をマルチキャストすると、すべてがプローブ一致で正しく応答します。ただし、サーバーに検出要求をユニキャストすると、そのうちの1人だけが応答します。応答しているピンを固定するのはちょっと難しいですが、最初に作成されると思います。検出プローブがユニキャストのときにUdpDiscoveryEndpointが1つしか応答しないのはなぜですか?

私は、ユニキャスト検出にディスカバリプロキシを使用するべきであることを知っています。将来、これを実装するでしょうが、2つのケースで私のサービスが異なる応答をする理由については困惑しています。

答えて

1

アドホック(マルチキャスト)は、見たようにリッスンするユーザーに対してサブネットを検索していますが、検出可能なサービスの既定の検出エンドポイントを管理しています(ユニキャスト)。アドホックモードでは、ディスカバリー要求をブロードキャストし、誰もが説明どおりに応答しますが、管理モードでは、プロキシーはディスカバリー要求を1つの宛先に送信し、その宛先のみが応答します(通常ディスカバリー・プロキシー)。

ユニキャストは、検出可能なサービスを解決するようにプロキシに要求するだけで、プロキシが既にそのエンドポイントと直接通信しているため、検出プロキシの利点なしにサービスエンドポイントを既に知っていることを意味します。

+0

同一の検出プローブは、ユニキャストパケットまたはマルチキャストパケットとして到着するかどうかによって、異なる応答を生成します。それはかわいそうだ。 – Foob

関連する問題