Controle de versão de descoberta
Este tópico fornece uma breve visão geral da implementação de alguns novos recursos de descoberta. Ele também fornece uma visão geral sobre como selecionar 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 qual versão do protocolo você deseja usar. Este documento descreve brevemente as configurações relacionadas ao controle de versão.
As seguintes classes Discovery agora têm uma DiscoveryVersion propriedade e usam um DiscoveryVersion argumento em seus construtores:
DiscoveryVersion.WSDiscoveryAbril de 2005
Fornecer WSDiscoveryApril2005 como um parâmetro de construtor faz com que a implementação use a versão de abril de 2005 do protocolo WS-Discovery. Esta versão corresponde à versão publicada da especificação do protocolo WS-Discovery. Esta versão deve ser usada para interoperar com aplicativos herdados utilizando a versão de abril de 2005 do WS-Discovery.
DiscoveryVersion.WSDiscovery11
A versão de descoberta padrão usada pelas APIs é WSDiscovery11. Esta é a versão padronizada atual do protocolo WS-Discovery.
DiscoveryVersion.WSDiscoveryCD1
Fornecer WSDiscoveryCD1 como um parâmetro de construtor faz com que a implementação use a versão de rascunho 1 do comitê do protocolo WS-Discovery. Esta versão do protocolo deve ser usada para interoperar com implementações que executam a versão CD1 do protocolo WS-Discovery.
Suporte a vários pontos de extremidade de descoberta UDP para diferentes versões de descoberta em um único host de serviço
Você pode querer expor vários pontos de extremidade de descoberta UDP para diferentes versões de descoberta em um único host de serviço. Para fazer isso, você deve 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);