Contrôle des versions de découverte

Cette rubrique donne une rapide vue d'ensemble de l'implémentation de nouvelles fonctionnalités de découverte. Elle donne également une vue d'ensemble de la manière de sélectionner la version de découverte à utiliser.

Contrôle des versions de découverte

La fonctionnalité de découverte inclut la prise en charge de trois versions du protocole WS_Discovery. Les API de découverte vous permettent de sélectionner la version du protocole que vous souhaitez utiliser. Ce document décrit brièvement les paramètres liés au contrôle des versions.

Les classes de découverte suivantes ont désormais une propriété DiscoveryVersion et prennent un argument DiscoveryVersion dans leurs constructeurs :

DiscoveryVersion.WSDiscoveryApril2005

Si vous spécifiez WSDiscoveryApril2005 comme paramètre de constructeur, l’implémentation utilise la version d’avril 2005 du protocole WS-Discovery. Cette version correspond à la version publiée de la spécification du protocole WS-Discovery. Cette version doit être utilisée pour interopérer avec une application héritée utilisant la version de WS-Discovery d'avril 2005.

DiscoveryVersion.WSDiscovery11

La version de découverte par défaut utilisée par les API est WSDiscovery11. C'est la version standardisée actuelle du protocole WS-Discovery.

DiscoveryVersion.WSDiscoveryCD1

Si vous spécifiez WSDiscoveryCD1 comme paramètre de constructeur, l’implémentation utilise la version Committee Draft 1 du protocole WS-Discovery. Cette version du protocole doit être utilisée pour interopérer avec les implémentations exécutant la version CD1 du protocole WS-Discovery.

Prise en charge de plusieurs points de terminaison de découverte UDP pour différentes versions de découverte sur un hôte de service unique

Vous pouvez exposer plusieurs points de terminaison de découverte UDP pour différentes versions de découverte sur un hôte de service unique. Pour ce faire, vous devez spécifier une adresse unique pour chaque point de terminaison de découverte UDP. L’exemple suivant vous montre comment procéder.

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