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
Copyright ©2007 par Microsoft Corporation. Tous droits réservés.