다음을 통해 공유


검색 버전 관리

이 항목에서는 일부 새 검색 기능의 구현에 대해 간략하게 설명하고 사용할 검색 버전을 선택하는 방법에 대해서도 간략하게 설명합니다.

검색 버전 관리

검색 기능은 세 가지 버전의 WS_Discovery 프로토콜을 지원합니다. 검색 API를 사용하면 사용할 프로토콜 버전을 선택할 수 있습니다. 이 문서에서는 버전 관리 관련 설정에 대해 간략하게 설명합니다.

다음은 DiscoveryVersion 속성을 포함하고 있고 해당 생성자에 DiscoveryVersion 인수를 사용하는 검색 클래스입니다.

DiscoveryVersion.WSDiscoveryApril2005

WSDiscoveryApril2005를 생성자 매개 변수로 제공하면 구현 시 WS-Discovery 프로토콜의 April2005 버전이 사용됩니다. 이 버전은 WS-Discovery 프로토콜 사양의 게시된 버전에 해당합니다. WS-Discovery의 April2005 버전을 사용하는 레거시 애플리케이션과 상호 운용하려면 이 버전을 사용해야 합니다.

DiscoveryVersion.WSDiscovery11

WSDiscovery11은 API에서 사용하는 기본 검색 버전입니다. 이 버전은 WS-Discovery 프로토콜의 현재 표준화된 버전입니다.

DiscoveryVersion.WSDiscoveryCD1

WSDiscoveryCD1을 생성자 매개 변수로 제공하면 구현 시 WS-Discovery 프로토콜의 committee draft 1 버전이 사용됩니다. WS-Discovery 프로토콜의 CD1 버전을 실행하는 구현과 상호 운용하려면 이 버전의 프로토콜을 사용해야 합니다.

단일 서비스 호스트에서 다양한 검색 버전에 대해 여러 개의 UDP 검색 엔드포인트 지원

단일 서비스 호스트에서 다양한 검색 버전에 대해 여러 개의 UDP 검색 엔드포인트를 노출할 수 있습니다. 이렇게 하려면 각 UDP 검색 엔드포인트에 고유한 주소를 지정해야 합니다. 다음 예제에 이 작업을 수행하는 방법이 나와 있습니다.

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