Partager via


Ajout d'un programme de résolution personnalisé à une application PeerChannel

Par défaut, PeerChannel utilise le service de programme de résolution d'homologue PNRP (Peer Name Resolution Protocol). Cependant, en raison de la stratégie réseau ou de la configuration, il peut s'avérer nécessaire d'implémenter un service de programme de résolution d'homologue personnalisé. La section ci-après décrit le processus d'ajout d'un service de ce type à une application PeerChannel.

Programmes de résolution d'homologue personnalisés

Un service de programme de résolution d'homologue personnalisé est un service singleton qui met en cache les ID de maille et les adresses de point de terminaison dans un dictionnaire, et répond aux demandes d'inscription, d'annulation d'inscription, etc. des clients. Les ID de maille sont supposés être uniques. Si plusieurs applications utilisent le même programme de résolution, elles doivent choisir des ID de maille différents afin d'éviter tout conflit.

Création et configuration d'un programme de résolution d'homologue personnalisé

Un programme de résolution d'homologue personnalisé implémente une fonction principale statique pour créer un ServiceHost pour le type CustomPeerResolverService donné. L'hôte est également chargé de fournir une adresse de base à l'hôte de service, qui doit être configuré dans les paramètres d'application du fichier de configuration (généralement App.config).

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

Le service de programme de résolution d'homologue personnalisé implémente le contrat ICustomPeerResolver, qui expose les opérations RegisterMeshId, UnregisterMeshId et ResolveMeshId. Le client adresse des demandes synchrones à une opération donnée et le service répond avec le résultat.

Le service expose un point de terminaison unique de communication avec le service qui est défini à l'aide du fichier de configuration. La liaison est configurée avec un NetTcpBinding standard, qui fournit la communication TCP.

<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>

Pour que les clients installés sur des ordinateurs distants puissent accéder au service, un nom de domaine complet doit être spécifié au lieu de localhost.

Notez que les clients qui utilisent un programme de résolution personnalisé doivent avoir une limite supérieure pour la latence client-serveur afin d'actualiser leur inscription auprès du service de programme de résolution d'homologue.

Voir aussi

Concepts

Extension de PeerChannel

Footer image

Copyright ©2007 par Microsoft Corporation. Tous droits réservés.