Associazioni fornite dal sistema
Le associazioni specificano il meccanismo di comunicazione da utilizzare durante la comunicazione con un endpoint e indicano come collegarsi a un endpoint. Un'associazione contiene gli elementi seguenti:
Lo stack del protocollo determina la sicurezza, l'affidabilità e le impostazioni del flusso di contesto da utilizzare per i messaggi inviati all'endpoint.
Il trasporto determina il protocollo di trasporto sottostante da utilizzare quando si inviano messaggi all'endpoint, ad esempio, TCP o HTTP.
La codifica determina la codifica di trasmissione da usare per i messaggi inviati all'endpoint, ad esempio, testo/XML, binaria o MTOM (Message Transmission Optimization Mechanism).
Questo articolo presenta tutte le associazioni Windows Communication Foundation (WCF) fornite dal sistema. Se nessuna di queste associazioni soddisfa esattamente i criteri per l'applicazione, è possibile creare un'associazione personalizzata. Per altre informazioni sulla creazione di associazioni personalizzate, vedere Associazioni personalizzate.
Un'associazione protetta e interoperabile che supporta il protocollo WS-Federation consente alle organizzazioni di una federazione di autenticare e autorizzare gli utenti in modo efficiente.
Importante
Selezionare sempre un'associazione che include la sicurezza. Per impostazione predefinita, tutte le associazioni ad eccezione dell'elemento <basicHttpBinding> hanno la sicurezza abilitata. Se non si seleziona un'associazione protetta o se si disattiva la sicurezza, assicurarsi di proteggere i dati in altro modo, ad esempio archiviandoli in un centro dati protetto o in una rete isolata.
Importante
Non utilizzare mai contratti duplex con associazioni che non supportano la sicurezza o che hanno la sicurezza disattivata, a meno che non si proteggano i dati in altro modo.
Con WCF sono in dotazione le associazioni seguenti:
Binding | Elemento di configurazione | Descrizione |
---|---|---|
BasicHttpBinding | <basicHttpBinding> | Associazione idonea per la comunicazione con servizi Web conformi a WS-Basic Profile, ad esempio servizi basati su servizi Web ASP.NET (ASMX). Questa associazione utilizza HTTP come trasporto e testo/XML come codifica dei messaggi predefinita. |
WSHttpBinding | <wsHttpBinding> | Un'associazione protetta e interoperabile adatta per contratti di servizio non duplex. |
WSDualHttpBinding | <wsDualHttpBinding> | Associazione protetta e interoperabile adatta per contratti di servizio duplex o per la comunicazione tramite intermediari SOAP. |
WSFederationHttpBinding | <wsFederationHttpBinding> | Associazione protetta e interoperabile che supporta il protocollo WS-Federation, che consente alle organizzazioni di una federazione di autenticare e autorizzare gli utenti in modo efficiente. |
NetHttpBinding | <netHttpBinding> | Associazione progettata per utilizzare i servizi HTTP o WebSocket che utilizza la codifica binaria per impostazione predefinita. |
NetHttpsBinding | <netHttpsBinding> | Associazione protetta progettata per utilizzare i servizi HTTP o WebSocket che utilizza la codifica binaria per impostazione predefinita. |
NetTcpBinding | <Nettcpbinding> | Associazione protetta e ottimizzata adatta per le comunicazioni tra applicazioni WCF da un computer a un altro. |
NetNamedPipeBinding | <Netnamedpipebinding> | Associazione protetta, affidabile e ottimizzata adatta per la comunicazione tra applicazioni WCF in un computer. |
NetMsmqBinding | <Netmsmqbinding> | Associazione in coda adatta per la comunicazione tra applicazioni WCF da un computer a un altro. |
NetPeerTcpBinding | <Netpeertcpbinding> | Associazione che consente comunicazioni sicure tra più computer. |
MsmqIntegrationBinding | <Msmqintegrationbinding> | Associazione adatta per la comunicazione da un computer a un altro tra un'applicazione WCF e applicazioni di Accodamento messaggi esistenti. |
BasicHttpContextBinding | <basicHttpContextBinding> | Associazione adatta per la comunicazione con servizi Web conformi a WS-Basic Profile che consente l'uso di cookie HTTP per lo scambio del contesto. |
NetTcpContextBinding | <Nettcpcontextbinding> | Associazione sicura e ottimizzata adatta per le comunicazioni da un computer a un altro tra applicazioni WCF. Consente l'uso delle intestazioni SOAP per lo scambio del contesto. |
WebHttpBinding | <webHttpBinding> | Associazione usata per configurare endpoint per servizi Web WCF esposti tramite richieste HTTP anziché tramite messaggi SOAP. |
WSHttpContextBinding | <wsHttpContextBinding> | Associazione protetta e interoperativa adatta per contratti di servizio non duplex che consente l'uso delle intestazioni SOAP per lo scambio del contesto. |
UdpBinding | <udpBinding> | Associazione da utilizzare quando si invia un burst di messaggi semplici a numerosi client contemporaneamente. |
Nella tabella seguente sono riportate le funzionalità di ogni associazione fornita dal sistema: Le associazioni sono riportate nelle colonne della tabella, mentre le funzionalità sono elencate nelle righe e descritte in una seconda tabella. Nella tabella seguente viene fornita una chiave per le abbreviazioni delle associazioni utilizzate. Per selezionare un'associazione, stabilire qual è la colonna che soddisfa tutte le funzionalità della riga necessarie.
Binding | Interoperabilità | Sicurezza (predefinita) | sessione Valore predefinito. |
Transazioni | Duplex | Codifica (predefinita) | Streaming Valore predefinito. |
---|---|---|---|---|---|---|---|
BasicHttpBinding | Basic Profile 1.1 | (None), Transport, Message, misto | (nessuna) | (nessuna) | n/d | Text, (MTOM) | Sì (memorizzato nel buffer) |
WSHttpBinding | WS | Transport, (Message), misto | (None), sessione affidabile, sessione di sicurezza | (None), sì | n/d | (Text), MTOM | No |
WSDualHttpBinding | WS | (Message), None | (Sessione affidabile), sessione di sicurezza | (None), sì | Sì | (Text), MTOM | No |
WSFederationHttpBinding | WS-Federation | (Message), misto, None | (None), sessione affidabile, sessione di sicurezza | (None), sì | No | (Text), MTOM | No |
NetHttpBinding | .NET | (None), Transport, Message, TransportWithMessageCredential, TransportCredentialOnly | Vedere la nota più avanti | Nessuno | Vedere la nota più avanti | (Binario), testo, MTOM | Sì (memorizzato nel buffer) |
NetHttpsBinding | .NET | (Transport), TransportWithMessageCredential | Vedere la nota più avanti | Nessuno | Vedere la nota più avanti | (Binario), testo, MTOM | Sì (memorizzato nel buffer) |
NetTcpBinding | .NET | (Transport), Message, None, misto | (Transport), sessione affidabile, sessione di sicurezza | (None), sì | Sì | Binary | Sì (memorizzato nel buffer) |
NetNamedPipeBinding | .NET | (Transport), None | None, (Transport) | (None), sì | Sì | Binary | Sì (memorizzato nel buffer) |
NetMsmqBinding | .NET | Message, (Transport), None | (None), Transport | None, (sì) | No | Binary | No |
NetPeerTcpBinding | Peer | (Transport) | (nessuna) | (nessuna) | Sì | No | |
MsmqIntegrationBinding | MSMQ | (Transport) | (nessuna) | None, (sì) | n/d | n/d | No |
BasicHttpContextBinding | Basic Profile 1.1 | (None), Transport, Message, misto | (nessuna) | (nessuna) | n/d | Text, (MTOM) | Sì (memorizzato nel buffer) |
NetTcpContextBinding | .NET | (Transport), Message, None, misto | (Transport), sessione affidabile, sessione di sicurezza | (None), sì | Sì | Binary | Sì (memorizzato nel buffer) |
WSHttpContextBinding | WS | Transport, (Message), misto | (None), sessione affidabile, sessione di sicurezza | (None), sì | n/d | Text, (MTOM) | No |
UdpBinding Nota: L'interoperabilità può essere ottenuta implementando la specifica SOAP-over-UDP standard implementata da questa associazione. |
.NET | (nessuna) | (nessuna) | (nessuna) | n/d | (Text) | No |
Importante
NetHttpBinding è un'associazione progettata per usare i servizi HTTP o WebSocket e usa la codifica binaria per impostazione predefinita. NetHttpBinding rileva se viene usato con un contratto request/reply o un contratto duplex e modifica il proprio comportamento di conseguenza. Usa HTTP per i contratti request/reply e WebSockets per i contratti duplex. Questo comportamento può essere modificato mediante l'impostazione dell'associazione WebSocketTransportUsage WhenDuplex, il valore predefinito che determina il comportamento descritto in precedenza. Never: impedisce l'uso di WebSockets. Il tentativo di usare un contratto duplex con questa impostazione genera un'eccezione. Always: forza l'uso di WebSockets anche per i contratti request/reply. NetHttpBinding supporta sessioni affidabili sia in modalità HTTP sia in modalità WebSocket. Nella modalità WebSocket, le sessioni vengono fornite dal trasporto.
Nella tabella seguente sono spiegate le funzionalità elencate nella tabella precedente.
Funzionalità | Descrizione |
---|---|
Tipo di interoperabilità | Denomina il protocollo o la tecnologia con cui l'associazione assicura l'interoperatività. |
Sicurezza | Specifica come il canale viene protetto: - None: il messaggio SOAP non è protetto e il client non è autenticato. - Transport: i requisiti di sicurezza sono soddisfatti a livello di trasporto. - Message: i requisiti di sicurezza sono soddisfatti a livello di messaggio. - Misto: le attestazioni sono contenute nel messaggio, i requisiti di integrità e riservatezza sono soddisfatti dal livello di trasporto. |
sessione | Specifica se questa associazione supporta contratti di sessione. |
Transazioni | Specifica se le transazioni sono attivate. |
Duplex | Specifica se sono supportati contratti duplex. Si noti che questa funzionalità richiede il supporto delle sessioni nell'associazione. |
Codifica | Specifica il formato di trasmissione del messaggio. I valori consentiti includono: - Text: ad esempio UTF-8. - Binary - MTOM (Message Transmission Optimization Mechanism): consente di codificare in modo efficiente elementi XML binari all'interno del contesto di una SOAP envelope. |
Streaming | Specifica se il flusso è supportato per i messaggi in ingresso e in uscita. Utilizzare la proprietà TransferMode nell'associazione per impostare il valore. I valori consentiti includono:- Buffered: i messaggi di richiesta e risposta vengono entrambi memorizzati nel buffer. - Streamed: i messaggi di richiesta e risposta vengono entrambi trasmessi. - StreamedRequest: il messaggio di richiesta viene trasmesso e quello di risposta viene memorizzato nel buffer. - StreamedResponse: il messaggio di richiesta viene memorizzato nel buffer e quello di risposta viene trasmesso. |