Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les liaisons sont des collections d’éléments de configuration spéciaux, appelés éléments de liaison, qui sont évalués par le runtime de service chaque fois qu’un client ou un point de terminaison de service est construit. Le type et l’ordre des éléments de liaison dans une liaison déterminent la sélection et la hiérarchie des canaux de protocole et de transport dans la hiérarchie des canaux d’un point de terminaison.
Les liaisons, en particulier les liaisons fournies par le système, ont généralement un certain nombre de propriétés de configuration qui reflètent les propriétés les plus couramment modifiées des éléments de liaison encapsulés.
Une liaison doit contenir exactement un élément de liaison de transport. Chaque élément de liaison de transport implique un élément de liaison d’encodage de message par défaut, qui peut être substitué en ajoutant au plus un élément de liaison d’encodage de message à la liaison. Outre les éléments de liaison de transport et d’encodeur, la liaison peut contenir un nombre quelconque d’éléments de liaison de protocole qui implémentent ensemble les fonctionnalités nécessaires au service et envoient un message SOAP d’un point de terminaison à un autre. Pour plus d’informations, consultez Utilisation de liaisons pour configurer des services et des clients.
Extension de liaisons et d’éléments de liaisons
Windows Communication Foundation (WCF) inclut des liaisons fournies par le système qui couvrent un large éventail de scénarios. (Pour plus d’informations, consultez System-Provided liaisons.) Toutefois, il peut arriver que vous deviez créer et utiliser une liaison qui n’est pas incluse dans WCF. Les scénarios suivants nécessitent la création d’une nouvelle liaison.
Pour utiliser un nouvel élément de liaison (par exemple, un nouvel élément de transport, d’encodage ou de liaison de protocole), vous devez créer une nouvelle liaison qui inclut cet élément de liaison. Par exemple, si vous avez ajouté un
UdpTransportBindingElementpersonnalisé pour le transport UDP, vous devriez créer une nouvelle liaison pour l’utiliser. Pour plus d’informations sur l’exécution de ce comportement en utilisant le type System.ServiceModel.Channels.CustomBinding, consultez Liaisons personnalisées.Pour configurer des éléments de liaison existantes de sorte que les liaisons fournies par le système ne soient pas exposées sur les propriétés publiques. Par exemple, vous devez créer une nouvelle liaison pour modifier l’ordre dans lequel les opérations de signature et de chiffrement sont effectuées. Pour plus d’informations sur l’exécution de ce comportement, consultez Guide pratique pour personnaliser une liaison System-Provided.
Pour établir des liaisons standard d’entreprise qui exposent uniquement des options de configuration spécifiques. Par exemple, pour créer pour votre entreprise une variante du WSHttpBinding dont la sécurité ne peut jamais être désactivée, créez une nouvelle liaison qui se comporte comme le WSHttpBinding, mais avec la sécurité toujours active. Pour plus d’informations, consultez Création de liaisons définies par l’utilisateur.
Pour effectuer une personnalisation des métadonnées, généralement mais pas nécessairement pour configurer ou utiliser un élément de liaison personnalisé. Pour plus d’informations sur la prise en charge des métadonnées pour les liaisons et les éléments de liaison, consultez Configuration et Prise en charge des métadonnées.
Canaux, liaisons et éléments de liaison
Les liaisons et les éléments de liaison établissent la connexion entre le modèle de programmation d'application, qui inclut les attributs et les comportements, et le modèle de canal, qui comprend les usines et les écouteurs, les encodeurs de messages ainsi que les implémentations de transport et de protocole. En règle générale, les éléments de liaison et les liaisons sont implémentés pour permettre aux canaux d’être utilisés par la couche Application.
La couche de canal transmet ou reçoit des messages à et de la couche de service et les transporte entre les points de terminaison. Sur un client, la couche de canal est une pile de mécanismes de création de canaux vers un point de terminaison réseau. Sur un service, la couche de canal est une pile d'écouteurs de canal qui acceptent les canaux reçus à un point de terminaison réseau.
Il existe deux types généraux de canaux : les canaux de protocole et les canaux de transport. Les canaux de transport sont responsables de la transmission réelle d’un message d’un point de terminaison réseau à un autre. Les canaux de transport doivent avoir un encodeur de message par défaut et doivent être en mesure d’utiliser un encodeur de message de remplacement fourni par le biais d’un élément de liaison d’encodeur de message. Un encodeur de message est chargé de la conversion d'un System.ServiceModel.Channels.Message en une représentation sur le câble, et inversement. Les canaux de protocole sont responsables de l’implémentation de protocoles au niveau SOAP (par exemple, WS-Security ou WS-ReliableMessaging).
La principale exigence pour les canaux de transport et de protocole est qu’ils implémentent les interfaces de canal requises. Pour créer une couche de canal active, ils doivent avoir des fabrications et des écouteurs associés, et ainsi de suite. Pour utiliser les implémentations de canal de WCF, il doit y avoir des éléments de liaison associés dérivés de BindingElement pour chaque canal, et il doit exister un élément d’extension de liaison correspondant pour l’inclusion dans les fichiers de configuration, qui dérive de BindingElementExtensionElement.
Comme mentionné précédemment, les éléments de liaison pour les encodeurs de messages, les implémentations de protocole et de canal de transport peuvent être empilés pour former une pile de canaux et le mécanisme de les aligner dans un ensemble ordonné est la liaison. Les liaisons et les éléments de liaison connectent le modèle de programmation applicative au modèle de canal. Vous pouvez utiliser directement vos implémentations de canal à partir du code, mais sauf si des encodeurs, des transports et des protocoles sont implémentés en tant qu’éléments de liaison, ils ne peuvent pas être utilisés à partir du modèle de programmation de couche de service.
Pour plus d’informations sur le développement de canaux et leurs éléments de liaison, consultez Extension de la couche canal.