Versionskontrolle für die Suche

Dieses Thema enthält eine kurze Übersicht über die Implementierung einiger neuer Suchfunktionen. Es enthält außerdem eine Übersicht über die Auswahl der zu verwendenden Suchversion.

Versionskontrolle für die Suche

Die Suchfunktion verfügt über die Unterstützung für drei Versionen des WS_Discovery-Protokolls. Mithilfe der Such-APIs können Sie auswählen, welche Version des Protokolls Sie verwenden möchten. In diesem Dokument werden die Einstellungen zur Versionskontrolle kurz beschrieben.

Die folgenden Discovery-Klassen verfügen jetzt über eine DiscoveryVersion-Eigenschaft und verwenden in ihren Konstruktoren ein DiscoveryVersion-Argument:

DiscoveryVersion.WSDiscoveryApril2005

Das Angeben von WSDiscoveryApril2005 als Konstruktorparameter führt dazu, dass die Implementierung die April2005-Version des WS-Discovery-Protokolls verwendet. Diese Version entspricht der veröffentlichten Version der WS-Discovery-Protokollspezifikation. Sie sollten diese Version bei Interaktionen mit älteren Anwendungen verwenden, die die Version "April2005" der WS-Suche nutzen.

DiscoveryVersion.WSDiscovery11

Die von den APIs verwendete Standardversion für die Ermittlung ist WSDiscovery11. Dies ist die momentane Standardversion des WS-Discovery-Protokolls.

DiscoveryVersion.WSDiscoveryCD1

Das Bereitstellen von WSDiscoveryCD1 als Konstruktorparameter führt dazu, dass die Implementierung die Version "Committee Draft 1" des WS-Discovery-Protokolls verwendet. Sie sollten diese Version des Protokolls bei Interaktionen mit Implementierungen verwenden, die die CD1-Version des WS-Discovery-Protokolls nutzen.

Unterstützen von mehreren UDP-Suchendpunkten für verschiedene Suchversionen auf einem einzelnen Diensthost

Es kann erforderlich sein, auf einem einzelnen Diensthost mehrere UDP-Suchendpunkte für verschiedene Suchversionen verfügbar zu machen. Dazu müssen Sie eine eindeutige Adresse für jeden UDP-Suchendpunkt angeben. Das folgende Beispiel zeigt die erforderliche Vorgehensweise.

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