Compartir a través de


Versión de la detección

Este tema proporciona información general breve sobre la implementación de algunas nuevas características de detección. También proporciona información general sobre cómo seleccionar la versión de detección que se desea usar.

Versión de la detección

La característica de detección incluye soporte para tres versiones del protocolo de WS-Discovery. Las API de detección le permiten seleccionar qué versión del protocolo desea utilizar. Este documento describe brevemente la configuración relacionada con la versión.

Las siguientes clases de detección tienen una propiedad DiscoveryVersion ahora y toman un argumento DiscoveryVersion en sus constructores:

DiscoveryVersion.WSDiscoveryApril2005

Proporcionar WSDiscoveryApril2005 como un parámetro de constructor hace que la implementación use la versión April2005 del protocolo de WS-Discovery. Esta versión corresponde a la versión publicada de la especificación de protocolo de WS-Discovery. Esta versión se debería utilizar para interoperar con la aplicación heredada que utiliza la versión April2005 de WS-Discovery.

DiscoveryVersion.WSDiscovery11

La versión de detección predeterminada que usan las API es WSDiscovery11. Ésta es la versión actual normalizada del protocolo de WS-Discovery.

DiscoveryVersion.WSDiscoveryCD1

Proporcionar WSDiscoveryCD1 como un parámetro de constructor hace que la implementación use la versión del borrador del comité 1 del protocolo de WS-Discovery. Esta versión del protocolo se debería utilizar para interoperar con implementaciones que ejecutan la versión de CD1 del protocolo de WS-Discovery.

Admitir varios extremos de detección de UDP para diversas versiones de detección en un host de servicio único

Puede desear exponer varios extremos de detección de UDP para las diversas versiones de detección en un único host de servicio. Para ello, debe especificar una dirección única para cada extremo de detección de UDP. El ejemplo siguiente muestra cómo hacerlo.

UdpDiscoveryEndpoint newVersionUdpEndpoint = new UdpDiscoveryEndpoint(DiscoveryVersion.WSDiscovery11);
UdpDiscoveryEndpoint oldVersionUdpEndpoint = new UdpDiscoveryEndpoint(DiscoveryVersion.WSDiscoveryApril2005);

newVersionUdpEndpoint.Address = new EndpointAddress(newVersionUdpEndpoint.Address.Uri.ToString() + "/version11");
oldVersionUdpEndpoint.Address = new EndpointAddress(oldVersionUdpEndpoint.Address.Uri.ToString() + "/versionApril2005");

serviceHost.AddServiceEndpoint(newVersionUdpEndpoint);
serviceHost.AddServiceEndpoint(oldVersionUdpEndpoint);