Endpoint: indirizzi, associazioni e contratti
La comunicazione con un servizio Windows Communication Foundation (WCF) si verifica interamente tramite gli endpoint del servizio. Gli endpoint forniscono ai client l'accesso alla funzionalità offerta da un servizio WCF.
Ogni endpoint è costituito da quattro proprietà:
Un indirizzo che indica dove si trova l'endpoint.
Un'associazione che specifica in che modo un client può comunicare con l'endpoint.
Un contratto che identifica le operazioni disponibili.
Un set di comportamenti che specificano dettagli di implementazione locali dell'endpoint.
In questo argomento viene illustrata la struttura di un endpoint e viene spiegato come tale struttura viene rappresentata nel modello a oggetti WCF.
Struttura di un endpoint
Ogni endpoint è costituito dagli elementi seguenti:
Indirizzo: l'indirizzo identifica in modo univoco l'endpoint e comunica ai potenziali utenti l'ubicazione del servizio. Nel modello a oggetti WCF, l'indirizzo è rappresentato dalla classe EndpointAddress. Una classe EndpointAddress contiene:
Una proprietà Uri, che rappresenta l'indirizzo del servizio.
Una proprietà Identity, che rappresenta l'identità di sicurezza del servizio e una raccolta di intestazioni di messaggio facoltative. Le intestazioni di messaggio facoltative vengono utilizzate per fornire ulteriori informazioni di indirizzamento più dettagliate, per identificare o interagire con l'endpoint.
Per ulteriori informazioni, vedere Specifica di un indirizzo endpoint.
Associazione: l'associazione specifica la modalità di comunicazione con l'endpoint, vale a dire:
Il protocollo di trasporto da utilizzare (ad esempio, TCP o HTTP).
La codifica da utilizzare per i messaggi (ad esempio, testo o binaria).
I necessari requisiti di sicurezza (ad esempio, la protezione dei messaggi SSL o SOAP).
Per ulteriori informazioni, vedere Panoramica sulle associazioni di Windows Communication Foundation. Nel modello a oggetti WCF, un'associazione è rappresentata dalla classe astratta di base Binding. Per la maggior parte degli scenari, gli utenti possono utilizzare una delle associazioni fornite dal sistema. Per ulteriori informazioni, vedere Associazioni fornite dal sistema.
Contratti: il contratto delinea la funzionalità che l'endpoint espone al client. Un contratto specifica:
Quali operazioni possono essere chiamate da un client.
La forma del messaggio.
Il tipo di parametri di input o di dati necessario per chiamare l'operazione.
Il tipo di elaborazione o di messaggio di risposta che il client può aspettarsi.
Per ulteriori informazioni sulla definizione di un contratto, vedere Progettazione dei contratti di servizio.
Comportamenti: è possibile utilizzare i comportamenti dell'endpoint per personalizzare il comportamento locale dell'endpoint del servizio. I comportamenti dell'endpoint realizzano questo obiettivo partecipando al processo di generazione di un runtime WCF. Un esempio di comportamento dell'endpoint è rappresentato dalla proprietà ListenUri, che consente di specificare un indirizzo di ascolto diverso dall'indirizzo SOAP o WSDL (Web Services Description Language). Per ulteriori informazioni, vedere ClientViaBehavior.
Definizione di endpoint
È possibile specificare l'endpoint di un servizio in modo imperativo, tramite codice, o in modo dichiarativo, tramite la configurazione. Per ulteriori informazioni, vedere Procedura: creare un endpoint di servizio nella configurazione e Procedura: creare un endpoint del servizio nel codice.
Argomenti della sezione
In questa sezione viene illustrato lo scopo di associazioni, endpoint e indirizzi; viene descritto come configurare un'associazione e un endpoint e viene dimostrato come utilizzare il comportamento ClientVia e la proprietà ListenUri.
- Indirizzi endpoint
Viene descritto come vengono indirizzati gli endpoint in WCF.
- Associazioni di Windows Communication Foundation
Viene descritto come vengono utilizzate le associazioni per specificare i dettagli sul trasporto, la codifica e il protocollo necessari per consentire la comunicazione tra client e servizi.
- Contratti
Viene descritto in che modo i contratti definiscono i metodi di un servizio.
- Procedura: creare un endpoint di servizio nella configurazione
Viene descritto come creare un endpoint del servizio nella configurazione.
- Procedura: creare un endpoint del servizio nel codice
Viene descritto come creare un endpoint del servizio nel codice.
- Procedura: utilizzare Svcutil.exe per convalidare il codice del servizio compilato
Viene descritto come rilevare errori in implementazioni e configurazioni del servizio senza ospitare il servizio, tramite lo strumento Strumento ServiceModel Metadata Utility Tool (Svcutil.exe).