이 항목에서는 몇 가지 새로운 검색 기능의 구현에 대한 간략한 개요를 제공합니다. 또한 사용할 검색 버전을 선택하는 방법에 대한 개요도 제공합니다.
검색 버전 관리
검색 기능에는 세 가지 버전의 WS_Discovery 프로토콜에 대한 지원이 포함됩니다. 검색 API를 사용하면 사용하려는 프로토콜 버전을 선택할 수 있습니다. 이 문서에서는 버전 관리 관련 설정을 간략하게 설명합니다.
이제 다음 Discovery 클래스에는 DiscoveryVersion 속성이 있고 해당 생성자에서는 DiscoveryVersion 인수를 사용합니다.
DiscoveryVersion.WSDiscoveryApril2005
WSDiscoveryApril2005 생성자 매개 변수로 제공하면 구현에서 2005년 4월 버전의 WS-Discovery 프로토콜을 사용합니다. 이 버전은 게시된 버전의 WS-Discovery 프로토콜 사양에 해당합니다. 이 버전은 WS-Discovery의 2005년 4월 버전을 활용하는 레거시 애플리케이션과 상호 운용하는 데 사용해야 합니다.
DiscoveryVersion.WSDiscovery11
API에서 사용하는 기본 검색 버전은 .입니다 WSDiscovery11. WS-Discovery 프로토콜의 현재 표준화된 버전입니다.
DiscoveryVersion.WSDiscoveryCD1
WSDiscoveryCD1 생성자 매개 변수로 제공하면 구현은 위원회 초안 1 버전의 WS-Discovery 프로토콜을 사용합니다. 이 버전의 프로토콜은 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);