Esempio relativo all'individuazione di ambiti
In questo esempio viene illustrato come utilizzare gli ambiti per suddividere in categorie gli endpoint individuabili e come utilizzare DiscoveryClient per eseguire una ricerca asincrona per gli endpoint. Nel servizio questo esempio mostra come personalizzare l'individuazione per ogni endpoint aggiungendo un comportamento di individuazione dell'endpoint e utilizzandolo per aggiungere un ambito all'endpoint. Viene inoltre illustrato come controllare l'individuabilità dell'endpoint. Nel client l'esempio illustra come i client possono creare un DiscoveryClient e ottimizzare i parametri di ricerca per includere gli ambiti aggiungendo ambiti a FindCriteria. Questo esempio mostra anche come i client possono limitare le risposte aggiungendo un criterio di chiusura.
Funzionalità del servizio
Questo progetto mostra due endpoint del servizio aggiunti a un ServiceHost. Ogni endpoint dispone di un comportamento EndpointDiscoveryBehavior ad esso associato. Tale comportamento viene utilizzato per aggiungere ambiti URI per entrambi gli endpoint. Gli ambiti vengono utilizzati per distinguere ciascuno degli endpoint in modo che i client siano in grado di ottimizzare la ricerca. Per il secondo endpoint, l'individuabilità può essere disabilitata impostando la proprietà Enabled su false. Ciò garantisce che i metadati di individuazione associati all'endpoint non siano inviati come parte di un messaggio di individuazione.
Funzionalità del client
Il metodo FindCalculatorServiceAddress()
mostra come utilizzare un DiscoveryClient e passare un FindCriteria con due restrizioni. Un ambito viene aggiunto ai criteri e la proprietà MaxResults viene impostata su 1. L'ambito limita i risultati ai soli servizi che pubblicano lo stesso ambito. L'impostazione di MaxResults su 1 limita le risposte attese da DiscoveryClient al massimo a 1 endpoint. La chiamata Find è un'operazione sincrona che blocca il thread fino a quando non viene raggiunto un timeout o non viene individuato un endpoint.
Per utilizzare questo esempio
L'esempio utilizza endpoint HTTP e, per eseguirlo, è necessario aggiungere ACL URL appropriati. Per ulteriori informazioni, vedere Configurazione di HTTP e HTTPS. L'esecuzione del comando seguente con privilegi elevati consente di aggiungere gli ACL appropriati. È necessario sostituire dominio e nome utente per gli argomenti seguenti se il comando non funziona in modo corretto:
netsh http add urlacl url=http://+:8000/ user=%DOMAIN%\%UserName%
Compilare la soluzione.
Eseguire il servizio eseguibile dalla directory di compilazione.
Eseguire il file eseguibile del client. Il client è in grado di individuare il servizio.
Nota: |
---|
È possibile che gli esempi siano già installati nel computer. Verificare la directory seguente (impostazione predefinita) prima di continuare.
<UnitàInstallazione>:\WF_WCF_Samples
Se questa directory non esiste, andare alla pagina relativa agli esempi di Windows Communication Foundation (WCF) e Windows Workflow Foundation (WF) per .NET Framework 4 per scaricare tutti gli esempi di Windows Communication Foundation (WCF) e WF. Questo esempio si trova nella directory seguente.
<UnitàInstallazione>:\WF_WCF_Samples\WCF\Basic\Discovery\DiscoveryWithScopes
|