Compartir a través de


Agregar un resolvedor personalizado a una aplicación PeerChannel

De forma predeterminada, PeerChannel utiliza el servicio de resolución de mismo nivel del Protocolo de resolución de nombres de mismo nivel (PNRP). Sin embargo, debido a la directiva de red o la configuración, puede ser necesario implementar un servicio de resolución del mismo nivel personalizado. La sección siguiente describe el proceso para agregar un servicio de resolución del mismo nivel personalizado a una aplicación PeerChannel.

Resoluciones del mismo nivel personalizadas

Un servicio de resolución del mismo nivel personalizado es un servicio de singleton que almacena en caché los id. de la malla y las direcciones de extremo en un diccionario y responde al registro, a la eliminación del registro y resuelve las solicitudes de los clientes. Se espera que los id. de malla sean únicos. Si varias aplicaciones utilizan la misma resolución, deberían elegir los id. de malla diferentes para evitar conflicto.

Creación y configuración de una resolución del mismo nivel personalizada

Una resolución del mismo nivel personalizada implementa una función principal estática para crear un ServiceHost para el tipo CustomPeerResolverService determinado. El host también es responsable de proporcionar una dirección base al host de servicio, que se debe configurar en los valores de la aplicación en el archivo de configuración (normalmente denominado App.config).

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

El servicio de resolución del mismo nivel personalizado implementa el contrato ICustomPeerResolver, que expone las operaciones RegisterMeshId, UnregisterMeshId y ResolveMeshId. El cliente realiza solicitudes sincrónicas a una operación determinada y el servicio responde con el resultado.

El servicio expone un extremo único para comunicarse con el servicio que se define utilizando el archivo de configuración. El enlace se configura con un NetTcpBinding estándar, que proporciona la comunicación de 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>

Para que los clientes en equipos remotos tengan acceso al servicio, se debe especificar un nombre de dominio completo en lugar del host local.

Tenga en cuenta que los clientes que utilizan una resolución personalizada deben tener algún enlace superior en la latencia cliente-servidor para actualizar correctamente su registro con el servicio de resolución del mismo nivel.

Consulte también

Conceptos

Extensión de PeerChannel

Footer image

Copyright © 2007 Microsoft Corporation. Reservados todos los derechos.