Freigeben über


Discovery-Versionierung

Dieses Thema enthält eine kurze Übersicht über die Implementierung einiger neuer Discovery-Features. Außerdem erhalten Sie eine Übersicht darüber, wie Sie die zu verwendende Discoveryversion auswählen.

Discovery-Versionierung

Das Ermittlungsfeature enthält Unterstützung für drei Versionen des WS_Discovery-Protokolls. Mit den Ermittlungs-APIs können Sie auswählen, welche Version des Protokolls Sie verwenden möchten. In diesem Dokument werden die Versionsverwaltungseinstellungen kurz beschrieben.

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

DiscoveryVersion.WSDiscoveryApril2005

Wenn Sie WSDiscoveryApril2005 als Konstruktorparameter angeben, wird die Implementierung die April2005-Version des WS-Discovery-Protokolls verwendet. Diese Version entspricht der veröffentlichten Version der WS-Discovery Protokollspezifikation. Diese Version sollte verwendet werden, um mit der Legacyanwendung zu arbeiten, die die April2005-Version von WS-Discovery verwendet.

DiscoveryVersion.WSDiscovery11

Die standardmäßige Ermittlungsversion, die von den APIs verwendet wird, ist WSDiscovery11. Dies ist die aktuelle standardisierte Version des WS-Discovery-Protokolls.

DiscoveryVersion.WSDiscoveryCD1

Wenn Sie WSDiscoveryCD1 als Konstruktorparameter angeben, führt dies dazu, dass die Implementierung die Entwurf 1-Version des Ausschusses des WS-Discovery-Protokolls verwendet. Diese Version des Protokolls sollte verwendet werden, um mit Implementierungen zu arbeiten, die die CD1-Version des WS-Discovery-Protokolls ausführen.

Unterstützen mehrerer UDP Discovery-Endpunkte für verschiedene Discoveryversionen auf einem einzelnen Diensthost

Möglicherweise möchten Sie mehrere UDP Discovery-Endpunkte für verschiedene Ermittlungsversionen auf einem einzelnen Diensthost verfügbar machen. Dazu müssen Sie eine eindeutige Adresse für jeden UDP-Ermittlungsendpunkt angeben. Das folgende Beispiel zeigt, wie dies funktioniert.

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