Controle de versão de descoberta
Este tópico fornece uma breve visão geral da implementação de alguns novos recursos de descoberta. Também fornece uma visão geral sobre como escolher a versão de descoberta a ser usada.
Controle de versão de descoberta
O recurso de descoberta inclui suporte para três versões do protocolo WS_Discovery. As APIs de descoberta permitem que você selecione a versão do protocolo que deseja usar. Este documento descreve brevemente as configurações relacionadas ao controle de versão.
As seguintes classes de Descoberta já têm uma propriedade DiscoveryVersion e usam um argumento DiscoveryVersion nos respectivos construtores:
DiscoveryVersion.WSDiscoveryApril2005
Fornecer WSDiscoveryApril2005 como parâmetro de construtor faz com que a implementação use a versão April2005 do protocolo WS-Discovery. Essa versão corresponde à versão publicada da especificação do protocolo WS-Discovery. Essa versão deve ser usada para interoperar com o aplicativo herdado usando a versão April2005 do WS-Discovery.
DiscoveryVersion.WSDiscovery11
A versão de descoberta padrão usada pelas APIs é WSDiscovery11. Essa é a versão padronizada atual do protocolo WS-Discovery.
DiscoveryVersion.WSDiscoveryCD1
Fornecer WSDiscoveryCD1 como parâmetro de construtor faz com que a implementação use a versão de rascunho 1 do comitê do protocolo WS-Discovery. Essa versão do protocolo deve ser usada para interoperar com as implementações que executam a versão CD1 do protocolo WS-Discovery.
Como dar suporte a vários pontos de extremidade de descoberta UDP para diferentes versões de descoberta em um só host de serviço
Talvez você queira expor vários pontos de extremidade de descoberta UDP para versões de descoberta diferentes em um só host de serviço. Para fazer isso, você precisa especificar um endereço exclusivo para cada ponto de extremidade de descoberta UDP. O exemplo a seguir mostra como fazer isso.
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);