次の方法で共有


PeerChannel アプリケーションへのカスタム リゾルバの追加

既定では、PeerChannel は PNRP (Peer Name Resolution Protocol) ピア リゾルバ サービスを使用します。ただし、ネットワーク ポリシーやネットワーク構成によっては、カスタム ピア リゾルバ サービスの実装が必要になることもあります。ここでは、PeerChannel アプリケーションにカスタム ピア リゾルバ サービスを追加するプロセスについて説明します。

カスタム ピア リゾルバ

カスタム ピア リゾルバ サービスは、メッシュ ID とエンドポイント アドレスをディクショナリにキャッシュし、クライアントからの登録要求および登録解除要求に応答して解決するシングルトン サービスです。メッシュ ID は一意である必要があります。複数のアプリケーションで同じリゾルバを使用する場合、競合を避けるために異なるメッシュ ID を選択する必要があります。

カスタム ピア リゾルバの作成と構成

カスタム ピア リゾルバは、静的な main 関数を実装し、指定された CustomPeerResolverService 型の ServiceHost を作成します。ホストはベース アドレスをサービス ホストに提供する必要もあります。サービス ホストは、構成ファイル (通常は App.config という名前) のアプリケーション設定で構成される必要があります。

<appSettings>
    <!-- use appSetting to configure base address provided by host -->
    <add key="baseAddress"
     value=" net.tcp://localhost/servicemodelsamples/peerResolverService" />
</appSettings>

カスタム ピア リゾルバ サービスは、RegisterMeshId、UnregisterMeshId、および ResolveMeshId 操作を公開する ICustomPeerResolver コントラクトを実装します。クライアントは指定された操作を同期要求し、サービスは結果と共に応答します。

サービスは、サービスとの通信に使用する単一エンドポイントを公開します。エンドポイントは構成ファイルで定義します。バインディングは、TCP 通信を行う標準の NetTcpBinding を使用して構成されます。

<services>
    <service 
       service="Microsoft.ServiceModel.Samples. CustomPeerResolverService">
       <!-- use base address provided by the host -->
       <endpoint address=""
            binding=" netTcpBinding "
             contract="Microsoft.ServiceModel.Samples. ICustomPeerResolver" />
    </service>
</services>

リモート コンピュータ上のクライアントがサービスにアクセスするには、localhost の代わりに修飾ドメイン名を指定する必要があります。

カスタム リゾルバを使用するクライアントは、ピア リゾルバ サービスの登録を正常に更新するために、クライアントとサーバーの間の待ち時間に一定の上限を設ける必要があります。

関連項目

概念

PeerChannel の拡張

Footer image

Copyright © 2007 by Microsoft Corporation.All rights reserved.