Controllo delle versioni per l'individuazione
In questo argomento viene fornita una breve panoramica dell'implementazione di alcune nuove funzionalità di individuazione. Vengono inoltre forniti cenni preliminari sulla scelta della versione dell'individuazione da utilizzare.
Controllo delle versioni per l'individuazione
La funzionalità di individuazione include il supporto per tre versioni del protocollo WS_Discovery. Le interfacce API di individuazione consentono di selezionare la versione del protocollo che si desidera utilizzare. Questo documento contiene brevi descrizioni sulle impostazioni correlate al controllo delle versioni.
Le classi di individuazione seguenti dispongo ora di una proprietà DiscoveryVersion e utilizzano un argomento DiscoveryVersion nei propri costruttori:
DiscoveryVersion.WSDiscoveryApril2005
Se viene fornito WSDiscoveryApril2005 come parametro costruttore, l'implementazione utilizzerà la versione April2005 del protocollo WS-Discovery. Questa versione corrisponde alla versione pubblicata della specifica del protocollo di WS-Discovery e deve essere utilizzata per interoperare con l'applicazione legacy che utilizza la versione April2005 di WS-Discovery.
DiscoveryVersion.WSDiscovery11
La versione per l'individuazione predefinita utilizzata dalle interfacce API è WSDiscovery11. Si tratta della versione standardizzata corrente del protocollo di WS-Discovery.
DiscoveryVersion.WSDiscoveryCD1
Se viene fornito WSDiscoveryCD1 come parametro costruttore, l'implementazione utilizzerà la versione 1 della bozza del comitato del protocollo WS-Discovery. Questa versione del protocollo deve essere utilizzata per interoperare con le implementazioni che eseguono la versione CD1 del protocollo WS-Discovery.
Supporto di più endpoint di individuazione UDP per varie versioni per l'individuazione su un solo host del servizio
Potrebbe risultare opportuno esporre più endpoint di individuazione UDP per varie versioni per l'individuazione su un solo host del servizio. A tale scopo è necessario specificare un indirizzo univoco per ogni endpoint di individuazione UDP. Nell'esempio seguente viene illustrato come effettuare questa operazione.
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() + "/versionAril2005");
serviceHost.AddServiceEndpoint(newVersionUdpEndpoint);
serviceHost.AddServiceEndpoint(oldVersionUdpEndpoint);