Liaisons fournies par le système

Les liaisons spécifient le mécanisme de communication à utiliser pour communiquer avec un point de terminaison et indiquer comment se connecter à un point de terminaison. Une liaison contient les éléments suivants :

  • La pile de protocole détermine la sécurité, la fiabilité et les paramètres de flux de contexte à utiliser pour les messages envoyés au point de terminaison.

  • Le transport détermine le protocole de transport sous-jacent à utiliser lors de l'envoi des messages au point de terminaison, par exemple, TCP ou HTTP.

  • L’encodage détermine l’encodage de câble à utiliser pour les messages envoyés au point de terminaison. Par exemple, texte/XML, binaire ou MTOM (Message Transmission Optimization Mechanism).

Cet article présente toutes les liaisons WCF (Windows Communication Foundation) fournies par le système. Si aucune de ces liaisons ne répond aux critères exacts de votre application, vous pouvez créer une liaison personnalisée. Pour plus d’informations sur la création de liaisons personnalisées, consultez Liaisons personnalisées.

Une liaison sécurisée et interopérable qui prend en charge le protocole WS-Federation permet aux organisations qui sont dans une fédération d’authentifier et d’autoriser efficacement les utilisateurs.

Important

Sélectionnez toujours une liaison qui inclut la sécurité. Par défaut, la sécurité est activée pour toutes les liaisons, à l’exception de l’élément <basicHttpBinding>. Si vous ne sélectionnez pas de liaison sécurisée ou désactivez la sécurité, veillez à protéger vos données d’une manière ou d’une autre, telle que le stockage dans un centre de données sécurisé ou sur un réseau isolé.

Important

N’utilisez jamais des contrats duplex avec les liaisons qui ne prennent pas en charge la sécurité ou dont la sécurité est désactivée sauf si vous sécurisez les données d’un moyen ou un autre.

Les liaisons suivantes sont fournies avec WCF :

Liaison Élément de configuration Description
BasicHttpBinding <basicHttpBinding> Liaison appropriée à la communication avec les services web conformes au profil WS-Basic, par exemple les services basés sur les services web ASP.NET (ASMX). Cette liaison utilise HTTP comme le transport et texte/XML comme encodage de message par défaut.
WSHttpBinding <wsHttpBinding> Une liaison sécurisée et interopérable adaptée aux contrats de service non duplex.
WSDualHttpBinding <wsDualHttpBinding> Une liaison sécurisée et interopérable appropriée pour les contrats de service duplex ou les communications par le biais des intermédiaires SOAP.
WSFederationHttpBinding <wsFederationHttpBinding> Liaison sécurisée et interopérable prenant en charge le protocole WS-Federation, ce qui permet aux organisations membres d’une fédération d’appliquer efficacement des procédures d’authentification et d’autorisation aux utilisateurs.
NetHttpBinding <netHttpBinding> Liaison conçue pour consommer des services HTTP ou WebSocket qui utilise l’encodage binaire par défaut.
NetHttpsBinding <netHttpsBinding> Liaison sécurisée conçue pour consommer des services HTTP ou WebSocket qui utilise l'encodage binaire par défaut.
NetTcpBinding <netTcpBinding> Liaison sécurisée et optimisée, adaptée à la communication des applications WCF entre les machines.
NetNamedPipeBinding <netNamedPipeBinding> Liaison sécurisée, fiable et optimisée adaptée à la communication des applications WCF sur les machines.
NetMsmqBinding <netMsmqBinding> Liaison en file d’attente adaptée à la communication des applications WCF entre les machines.
NetPeerTcpBinding <netPeerTcpBinding> Une liaison qui permet la communication sécurisée entre plusieurs ordinateurs.
MsmqIntegrationBinding <msmqIntegrationBinding> Liaison adaptée à la communication d’une application WCF avec des applications Message Queuing entre les machines.
BasicHttpContextBinding <basicHttpContextBinding> Liaison adaptée à la communication avec les services web conformes au profil WS-Basic, ce qui permet l’utilisation de cookies HTTP pour l’échange de contexte.
NetTcpContextBinding <netTcpContextBinding> Liaison sécurisée et optimisée adaptée à la communication des applications WCF entre les machines, ce qui permet l’utilisation d’en-têtes SOAP pour l’échange de contexte.
WebHttpBinding <webHttpBinding> Liaison utilisée afin de configurer des points de terminaison pour les services web WCF qui sont exposés via des requêtes HTTP au lieu de messages SOAP.
WSHttpContextBinding <wsHttpContextBinding> Liaison sécurisée et interopérable adaptée aux contrats de service non duplex, ce qui permet l’utilisation d’en-têtes SOAP pour l’échange de contexte.
UdpBinding <udpBinding> Liaison à utiliser lors de l'envoi d'une rafale de messages simples à un grand nombre de clients simultanément.

Le tableau suivant affiche les fonctionnalités de chacune des liaisons fournies par le système. Les liaisons figurent dans les colonnes du tableau ; les fonctionnalités sont répertoriées dans les lignes et décrites dans un deuxième tableau. Le tableau suivant fournit une clé pour les abréviations de liaison utilisées. Pour sélectionner une liaison, déterminez quelle colonne satisfait toutes les fonctionnalités de ligne dont vous avez besoin.

Liaison Interopérabilité Sécurité (valeur par défaut) session
(Par défaut)
Transactions Duplex Encodage (Valeur par défaut) Diffusion en continu
(Par défaut)
BasicHttpBinding Basic Profile 1.1 (Aucun), transport, message, mixte (aucune) (aucune) Non applicable Texte, (MTOM) Oui
(mis en mémoire tampon)
WSHttpBinding WS Transport, (message), mixte (Aucun), session fiable, session de sécurité (Aucun), oui n/a (Texte), MTOM Non
WSDualHttpBinding WS (Message), aucun (Session fiable), session de sécurité (Aucun), oui Oui (Texte), MTOM Non
WSFederationHttpBinding Un certificat de fournisseur d'identité WS-Federation (Message), mixte, aucun (Aucun), session fiable, session de sécurité (Aucun), oui Non (Texte), MTOM Non
NetHttpBinding .NET (None), Transport, Message, TransportWithMessageCredential, TransportCredentialOnly Voir la remarque ci-dessous Aucun Voir la remarque ci-dessous (Binaire), Texte, MTOM Oui (mis en mémoire tampon)
NetHttpsBinding .NET (Transport), TransportWithMessageCredential Voir la remarque ci-dessous Aucun Voir la remarque ci-dessous (Binaire), Texte, MTOM Oui
(mis en mémoire tampon)
NetTcpBinding .NET (Transport), message, aucun, mixte (Transport), session fiable, session de sécurité (Aucun), oui Oui Binary Oui
(mis en mémoire tampon)
NetNamedPipeBinding .NET (Transport), aucun Aucun, (Transport) (Aucun), oui Oui Binary Oui
(mis en mémoire tampon)
NetMsmqBinding .NET Message, (Transport), Aucun (Aucun), Transport Aucun, (Oui) Non Binary Non
NetPeerTcpBinding Homologue (Transport) (aucune) (aucune) Oui Non
MsmqIntegrationBinding MSMQ (Transport) (aucune) Aucun, (Oui) n/a n/a Non
BasicHttpContextBinding Basic Profile 1.1 (Aucun), transport, message, mixte (aucune) (aucune) Non applicable Texte, (MTOM) Oui
(mis en mémoire tampon)
NetTcpContextBinding .NET (Transport), message, aucun, mixte (Transport), session fiable, session de sécurité (Aucun), oui Oui Binary Oui
(mis en mémoire tampon)
WSHttpContextBinding WS Transport, (message), mixte (Aucun), session fiable, session de sécurité (Aucun), oui Non applicable Texte, (MTOM) Non
UdpBinding

Remarque : vous pouvez obtenir une interopérabilité en implémentant la spécification standard SOAP sur UDP que cette liaison implémente.
.NET (aucune) (aucune) (aucune) Non applicable (Texte) Non

Important

NetHttpBinding est une liaison conçue pour consommer des services HTTP ou WebSocket et utilise l'encodage binaire par défaut. NetHttpBinding détecte s’il est utilisé avec un contrat de requête-réponse ou un contrat duplex, puis change son comportement de manière appropriée. Il utilise le protocole HTTP pour les contrats de requête-réponse et WebSockets pour les contrats duplex. Vous pouvez remplacer ce comportement à l’aide du paramètre de liaison WebSocketTransportUsage : WhenDuplex. Il s’agit de la valeur par défaut, dont le comportement est décrit ci-dessus. Jamais - Empêche l'utilisation de WebSockets. Toute tentative d’utilisation d’un contrat duplex avec ce paramètre entraîne une exception. Toujours - Force l'utilisation de WebSockets même pour les contrats de demande-réponse. NetHttpBinding prend en charge les sessions fiables en mode HTTP et en mode WebSocket. Les sessions en mode WebSocket sont fournies par le transport.

Le tableau suivant explique les fonctionnalités répertoriées dans le tableau précédent.

Fonctionnalité Description
Type d'interopérabilité Nomme le protocole ou la technologie avec laquelle la liaison garantit l'interopérabilité.
Sécurité Définit le mode de sécurisation du canal :
- Aucun : le message SOAP n’est pas sécurisé et le client n’est pas authentifié.
- Transport : les exigences de sécurité sont satisfaites au niveau de la couche transport.
- Message : les exigences de sécurité sont satisfaites au niveau de la couche message.
- Mixte : les revendications sont contenues dans le message ; les exigences d’intégrité et de confidentialité sont satisfaites par la couche transport.
session Spécifie si cette liaison prend en charge des contrats de session.
Transactions Spécifie si les transactions sont activées.
Duplex Spécifie si les contrats duplex sont pris en charge. Notez que cette fonctionnalité requiert la prise en charge des sessions dans la liaison.
Encodage Spécifie le format de câble du message. Les valeurs autorisées incluent :
- Texte : UTF-8, par exemple.
- Binaire
- MTOM (Message Transmission Optimization Mechanism) : méthode permettant d’encoder efficacement des éléments XML binaires dans le contexte d’une enveloppe SOAP.
Diffusion en continu Spécifie si la diffusion en continu est prise en charge pour les messages entrants et sortants. Utilisez la propriété TransferMode sur la liaison pour définir la valeur. Les valeurs autorisées incluent :
- Buffered : les messages de requête et de réponse sont tous deux mis en mémoire tampon.
- Streamed : les messages de requête et de réponse font tous deux l’objet d’un streaming.
- StreamedRequest : le message de requête fait l’objet d’un streaming et le message de réponse est mis en mémoire tampon.
- StreamedResponse : le message de requête est mis en mémoire tampon et le message de réponse fait l’objet d’un streaming.

Voir aussi