メッシュに接続するには、ピア ノードに他のノードの IP アドレスが必要です。 IP アドレスは、リゾルバー サービスに接続することによって取得されます。このサービスはメッシュ ID を受け取り、その特定のメッシュ ID に登録されているノードに対応するアドレスの一覧を返します。 リゾルバーは、登録されたアドレスの一覧を保持します。これは、メッシュ内の各ノードをサービスに登録することによって作成されます。
NetPeerTcpBindingの Resolver
プロパティを使用して、使用する PeerResolver サービスを指定できます。
サポートされているピア リゾルバー
ピア チャネルでは、ピア名前解決プロトコル (PNRP) とカスタム リゾルバー サービスの 2 種類のリゾルバーがサポートされています。
既定では、ピア チャネルは、メッシュ内のピアとネイバーの検出に PNRP ピア リゾルバー サービスを使用します。 PNRP が利用できない、または実現可能な状況/プラットフォームの場合、Windows Communication Foundation (WCF) は、代替のサーバー ベースの探索サービス ( CustomPeerResolverService) を提供します。 IPeerResolverContract インターフェイスを実装するクラスを記述することで、カスタム リゾルバー サービスを明示的に定義することもできます。
ピア名解決プロトコル (PNRP)
WINDOWS Vista の既定のリゾルバーである PNRP は、分散されたサーバーレス名リゾルバー サービスです。 PNRP は、Advanced Networking Pack をインストールすることで Windows XP SP2 でも使用できます。 PNRP の同じバージョンを実行している 2 つのクライアントは、特定の条件 (企業ファイアウォールの介入がないなど) を満たしている場合に、このプロトコルを使用して互いを見つけることができます。 Windows Vista に付属する PNRP のバージョンは、Advanced Networking Pack に含まれているバージョンよりも新しい点に注意してください。 Windows XP SP2 用 PNRP の更新プログラムについては、Microsoft ダウンロード センターを参照してください。
カスタム 競合回避モジュール サービス
PNRP サービスが使用できない場合、またはメッシュ シェイプを完全に制御する必要がある場合は、カスタムのサーバー ベースのリゾルバー サービスを使用できます。 このサービスを明示的に定義するには、 IPeerResolverContract インターフェイスを実装するリゾルバー クラスを記述するか、 CustomPeerResolverServiceインボックスの既定の実装を使用します。
サービスの既定の実装では、クライアントが登録を明示的に更新しない場合、クライアント登録は一定時間後に期限切れになります。 リゾルバー サービスを使用しているクライアントは、時間内に登録を正常に更新するために、クライアントとサーバーの待機時間の上限を認識する必要があります。 これには、リゾルバー サービスで適切な更新タイムアウト (RefreshInterval
) を選択する必要があります。 (詳細については、「 CustomPeerResolverService 内: クライアント登録」を参照してください)。
アプリケーション ライターは、クライアントとカスタム リゾルバー サービス間の接続のセキュリティ保護も検討する必要があります。 これを行うには、クライアントがリゾルバー サービスへの接続に使用する NetTcpBinding のセキュリティ設定を使用します。 ピア チャネルの作成に使用する ChannelFactory
に資格情報 (使用する場合) を指定する必要があります。 これらの資格情報は、カスタム リゾルバーへのチャネルの作成に使用される ChannelFactory
に渡されます。
注
カスタム リゾルバーでローカルネットワークと即席ネットワークを使用する場合、リンクローカルまたは即興ネットワークを使用またはサポートするアプリケーションには、接続時に使用する単一のリンクローカル アドレスを選択するロジックが含まれることを強くお勧めします。 これにより、複数のリンク ローカル アドレスを持つコンピューターによって発生する可能性のある混乱を防ぐことができます。 これに従って、ピア チャネルでは、一度に 1 つのリンク ローカル アドレスの使用のみがサポートされます。 このアドレスは、NetPeerTcpBindingの ListenIpAddress
プロパティで指定できます。
カスタム リゾルバーを実装する方法のデモについては、「 ピア チャネル カスタム ピア リゾルバー」を参照してください。
このセクションにて
CustomPeerResolverService: クライアント登録内