Udostępnij przez


Wersjonowanie odnajdywania

Ten temat zawiera krótkie omówienie implementacji niektórych nowych funkcji odnajdywania. Zawiera również omówienie sposobu wybierania wersji odnajdywania do użycia.

Wersjonowanie odnajdywania

Funkcja odnajdywania obejmuje obsługę trzech wersji protokołu WS_Discovery. Interfejsy API odnajdywania umożliwiają wybranie wersji protokołu, którego chcesz użyć. W tym dokumencie krótko opisano ustawienia związane z wersjonowaniem.

Następujące klasy Discovery mają właściwość DiscoveryVersion i przyjmują argument DiscoveryVersion w swoich konstruktorach.

DiscoveryVersion.WSDiscoveryApril2005

Podanie WSDiscoveryApril2005 jako parametru konstruktora sprawia, że implementacja korzysta z wersji april2005 protokołu WS-Discovery. Ta wersja odpowiada opublikowanej wersji specyfikacji protokołu WS-Discovery. Ta wersja powinna służyć do współdziałania ze starszą aplikacją, wykorzystującą wersję WS-Discovery z kwietnia 2005 roku.

DiscoveryVersion.WSDiscovery11

Domyślna wersja wyszukiwania używana przez interfejsy API to WSDiscovery11. Jest to bieżąca ustandaryzowana wersja protokołu WS-Discovery.

DiscoveryVersion.WSDiscoveryCD1

Podanie WSDiscoveryCD1 jako parametru konstruktora powoduje, że implementacja używa wersji projektu komitetu 1 protokołu WS-Discovery. Ta wersja protokołu powinna być używana do współdziałania z konfiguracjami protokołu WS-Discovery działającymi w wersji CD1.

Obsługa wielu punktów końcowych odnajdywania UDP dla różnych wersji odnajdywania na jednym hoście usługi

Może być konieczne uwidocznienie wielu punktów końcowych odnajdywania UDP dla różnych wersji odnajdywania na jednym hoście usługi. W tym celu należy określić unikatowy adres dla każdego punktu końcowego odnajdywania UDP. W poniższym przykładzie pokazano, jak to zrobić.

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