Uso di associazioni per configurare servizi e client

Le associazioni sono oggetti che specificano i dettagli di comunicazione necessari per connettersi a un endpoint. In particolare, le associazioni contengono le informazioni di configurazione usate per creare il client o il runtime del servizio definendo le specifiche dei trasporti, i formati di trasmissione (codifica del messaggio) e i protocolli da usare per il relativo endpoint o canale client. Per creare un servizio Windows Communication Foundation (WCF) funzionante, ogni endpoint nel servizio richiede un binding. In questo argomento viene illustrato cosa sono le associazioni, come vengono definite e come viene specificata una particolare associazione per un endpoint.

Elementi definiti da un'associazione

Le informazioni presenti in un'associazione possono essere molto semplici o molto complesse. L'associazione più semplice specifica solo il protocollo di trasporto (ad esempio HTTP) che deve essere usato per connettersi all'endpoint. In termini più generali, le informazioni contenute in un'associazione sulla modalità di connessione a un endpoint rientrano in una delle categorie della tabella seguente.

Protocolli
Determina il meccanismo di sicurezza usato: la funzionalità di messaggistica affidabile o le impostazioni di flusso del contesto della transazione.

Trasporto
Determina il protocollo di trasporto sottostante da usare (ad esempio, TCP o HTTP).

Codifica
Determina la codifica del messaggio, ad esempio, testo/XML, binaria o MTOM (Message Transmission Optimization Mechanism), che determina il modo in cui i messaggi vengono rappresentati come flussi di byte durante la trasmissione.

Associazioni fornite dal sistema

WCF include un set di binding forniti dal sistema progettati per coprire la maggior parte dei requisiti e degli scenari dell'applicazione. Le classi seguenti rappresentano alcuni esempi di associazioni fornite dal sistema:

  • BasicHttpBinding: associazione di protocollo HTTP adatta alla connessione a servizi Web conformi alla specifica WS-I Basic Profile 1.1 (ad esempio, servizi basati sui servizi Web ASP.NET [ASMX]).

  • WSHttpBinding: associazione di protocollo HTTP adatta alla connessione agli endpoint conformi ai protocolli e alle specifiche dei servizi Web.

  • NetNamedPipeBinding: usa la codifica binaria .NET e le tecnologie di frame insieme al trasporto delle named pipe di Windows per la connessione ad altri endpoint WCF sullo stesso computer.

  • NetMsmqBinding: usa le tecnologie di codifica binaria e frame .NET insieme all'accodamento messaggi (noto anche come MSMQ) per creare connessioni messaggi in coda con altri endpoint WCF.

Per un elenco completo dei binding forniti dal sistema con le relative descrizioni vedere Binding forniti dal sistema.

Associazioni personalizzate

Se la raccolta di associazioni fornite dal sistema non include la corretta combinazione di funzionalità richiesta da un'applicazione di servizio, è possibile creare un'associazione CustomBinding. Per altre informazioni sugli elementi di un binding CustomBinding, vedere <customBinding> e Binding personalizzati.

Uso di associazioni

L'utilizzo di associazioni comporta due passaggi di base:

  1. Selezionare o definire un'associazione. Il metodo più facile consiste nello scegliere una delle associazioni fornite dal sistema e usarla con le relative impostazioni predefinite. È inoltre possibile scegliere un'associazione fornita dal sistema e reimpostarne i valori delle proprietà per adattarli ai propri requisiti. In alternativa, è possibile creare un'associazione personalizzata e impostare ogni proprietà in base alle esigenze.

  2. Creare un endpoint che usa questa associazione.

Codice e configurazione

È possibile definire o configurare associazioni tramite il codice o la configurazione. Questi due approcci sono indipendenti dal tipo di associazione usato, ad esempio, se si usa un'associazione fornita dal sistema o CustomBinding. In generale, l'uso del codice garantisce il controllo completo sulla definizione di un'associazione durante la compilazione. La configurazione, d'altra parte, consente a un amministratore di sistema o all'utente di un servizio o di un client WCF di modificare i parametri dei binding. Questa flessibilità è spesso utile in quando non è possibile prevedere in alcun modo i requisiti specifici del computer e le condizioni della rete in cui deve essere distribuita un'applicazione WCF. Se le informazioni sull'associazione (e l'indirizzo) vengono separate dal codice, gli amministratori possono modificare i dettagli dell'associazione senza dover compilare o distribuire nuovamente l'applicazione. Si noti che se l'associazione viene definita nel codice, sovrascrive qualsiasi definizione basata sulla configurazione creata nel file di configurazione. Per esempi di questi approcci, vedere gli argomenti seguenti:

Vedi anche