Endpoint: indirizzi, associazioni e contratti

Tutte le comunicazioni con un servizio Windows Communication Foundation (WCF) vengono eseguite 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 altre informazioni, vedere Specifica di un indirizzo endpoint.

  • Associazione: l'associazione specifica la modalità di comunicazione con l'endpoint, Valuta gli ambiti seguenti:

    • 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 altre informazioni, vedere Panoramica dei binding WCF. Nel modello a oggetti WCF, un binding è rappresentato dalla classe astratta di base Binding. Per la maggior parte degli scenari, gli utenti possono utilizzare una delle associazioni fornite dal sistema. Per altre informazioni, vedere Binding 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 altre informazioni sulla progettazione dei contratti, vedere Progettazione di 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 altre 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 altre informazioni, vedere Procedura: Creare un endpoint di servizio in Configurazione e Procedura: Creare un endpoint di servizio nel codice.

In questa sezione

Contenuto della 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
Viene descritto come vengono indirizzati gli endpoint in WCF.

Bindings
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 di servizio nel codice
Viene descritto come creare un endpoint del servizio nel codice.

Procedura: Usare Svcutil.exe per convalidare il codice del servizio compilato
Viene descritto come rilevare gli errori nelle implementazioni e nelle configurazioni del servizio senza ospitare il servizio usando lo strumento ServiceModel Metadata Utility (Svcutil.exe).

Vedi anche