Binding Classe

Définition

Contient les éléments de liaison spécifiant les protocoles, les transports et les encodeurs de message utilisés pour la communication entre les clients et les services.

public ref class Binding abstract : System::ServiceModel::IDefaultCommunicationTimeouts
public abstract class Binding : System.ServiceModel.IDefaultCommunicationTimeouts
type Binding = class
    interface IDefaultCommunicationTimeouts
Public MustInherit Class Binding
Implements IDefaultCommunicationTimeouts
Héritage
Binding
Dérivé
Implémente

Exemples

BasicHttpBinding binding = new BasicHttpBinding();

binding.Name = "binding1";

Uri baseAddress = new Uri("http://localhost:8000/servicemodelsamples/service");
Uri address = new Uri("http://localhost:8000/servicemodelsamples/service/calc");

// Create a ServiceHost for the CalculatorService type and provide the base address.
using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress))
{
    serviceHost.AddServiceEndpoint(typeof(ICalculator), binding, address);

    // Open the ServiceHostBase to create listeners and start listening for messages.
    serviceHost.Open();

    // The service can now be accessed.
    Console.WriteLine("The service is ready.");
    Console.WriteLine("Press <ENTER> to terminate service.");
    Console.WriteLine();
    Console.ReadLine();
    // Close the ServiceHostBase to shutdown the service.
    serviceHost.Close();
}

Remarques

Représente une collection d’éléments de liaison qui décrivent chacun un aspect de la façon dont un point de terminaison communique avec d’autres points de terminaison et qui sont générés de manière régulière dans une fabrique de canal sur le client et dans un écouteur de canal sur le service. Une liaison contient une collection d'éléments de liaison qui correspondent aux canaux de protocole, aux canaux de transport et aux encodeurs de message. Les canaux de protocole peuvent avoir n’importe quel nombre d’éléments de liaison, mais le transport et l’encodeur de message ne peuvent en avoir qu’un. Il y a généralement six couches d’éléments de liaison dans une liaison. Seuls les éléments de transport et d'encodage de liaison du bas de la pile sont requis. Étant donné qu’un encodage est requis pour chaque liaison, si un encodage n’est pas spécifié, Windows Communication Foundation (WCF) ajoute un encodage par défaut pour vous. La valeur par défaut est Text/XML pour les transports HTTP et HTTPS, et Binary pour les autres transports.

Le tableau suivant récapitule les options de chaque couche.

Couche Options Obligatoire
Flux de transaction TransactionFlowBindingElement Non
Fiabilité ReliableSessionBindingElement Non
Sécurité Symétrique, asymétrique, au niveau du transport Non
Modification de la forme CompositeDuplexBindingElement Non
Mises à niveau de transport Flux SSL, flux Windows, programme de résolution d'homologue Non
Encodage Text, Binary, MTOM, Custom Oui
Transport TCP, Named Pipes, HTTP, HTTPS, MSMQ, Custom Oui

Chaque élément de liaison fournit la spécification permettant de générer une fabrique de canal sur le client et un écouteur de canal sur le service. Une fois que la pile de fabriques de canaux est construite, par exemple, il existe une fabrique de canal dans la pile pour chaque élément de liaison dans la liaison. Le même type de mappage s'applique aux écouteurs de canal dans la pile sur le service. La cohérence sur le client et le service est primordiale à l'établissement d'une la connexion basée sur canal entre ces points de terminaison. Chaque fabrique et écouteur procèdent, à tour de rôle, à l'émission et l'acceptation des canaux correspondants dans la pile de canaux qui les connecte et ces canaux peuvent ensuite envoyer et recevoir les messages utilisés pour communiquer.

Chaque instance d'une classe Binding a une propriété Name et une propriété Namespace qui l'identifient de façon unique dans les métadonnées du service. Si aucun nom ou espace de noms n’est spécifié, WCF ajoute des valeurs par défaut pour vous. Le nom par défaut est null et l’espace de noms par défaut est http://tempuri.org/. Le nom d’utilisateur de cette liaison est différent de celui qui est précisé dans la spécification du nom de protocole, effectuée par la propriété Scheme. Si vous souhaitez ajouter plus de liaisons HTTP, par exemple, vous avez la possibilité de leur attribuer un nom de votre choix et de définir leurs modèles sur "http". Il n'existe pas d'application inhérente ou de répartition d'ordinateurs basées sur la propriété Scheme. Vous évitez ainsi le problème fréquent de ne pas pouvoir enregistrer de gestionnaires supplémentaires aux protocoles connus. Vous pouvez également facilement travailler côte à côte avec plusieurs versions différentes d’une même liaison en attribuant un nom différent à chacune d’entre elles.

La classe Binding implémente l'interface IDefaultCommunicationTimeouts afin de limiter les attaques par déni de service (DOS) qui monopolisent les ressources dans le but d'allonger les intervalles de temps. L'implémentation spécifie les valeurs des délais d'attente de communication pour l'ouverture et la fermeture des connexions et pour la lecture et l'écriture des opérations associées à la réception et l'envoi de messages. Les propriétés utilisées pour obtenir et définir ces délais d'attente ainsi que les opérations se basant sur leurs valeurs par défaut sont résumées dans le tableau suivant.

Propriété du délai d'attente Valeur par défaut
OpenTimeout 1 minute
CloseTimeout 1 minute
SendTimeout 1 minute
ReceiveTimeout 10 minutes

Lorsque vous créez une liaison en héritant de l’objet Binding, vous devez remplacer la méthode CreateBindingElements.

De plus, vous pouvez définir vos propres éléments de liaison et les insérer entre chacune des couches définies dans le tableau précédent. Pour plus d'informations, consultez la classe CustomBinding.

Constructeurs

Binding()

Initialise une nouvelle instance de la classe Binding avec un nom et un espace de noms par défaut.

Binding(String, String)

Initialise une nouvelle instance de la classe Binding à partir d’une liaison spécifiée du service.

Propriétés

CloseTimeout

Obtient ou définit l'intervalle de temps attribué à une connexion pour qu'elle se ferme avant que le transport lève une exception.

MessageVersion

Obtient la version de message utilisée par les clients et les services configurés avec la liaison.

Name

Obtient ou définit le nom de la liaison.

Namespace

Obtient ou définit l’espace de noms XML de la liaison.

OpenTimeout

Obtient ou définit l'intervalle de temps attribué à une connexion pour qu'elle s'ouvre avant que le transport lève une exception.

ReceiveTimeout

Obtient ou définit la durée d’inactivité d’une connexion. Si aucun message d’application n’est reçu pendant ce laps de temps, la connexion est abandonnée.

Scheme

En cas d’implémentation dans une classe dérivée, définit le modèle URI qui spécifie le transport utilisé par les fabriques de canaux et d’écouteurs générées par les liaisons.

SendTimeout

Obtient ou définit l'intervalle de temps attribué à une opération d'écriture pour qu'elle se termine avant que le transport lève une exception.

Méthodes

BuildChannelFactory<TChannel>(BindingParameterCollection)

Génère la pile de fabriques de canaux sur le client qui crée un type de canal donné et est conforme aux fonctionnalités spécifiées par une collection de paramètres de liaison.

BuildChannelFactory<TChannel>(Object[])

Génère la pile de fabriques de canaux sur le client qui crée un type de canal donné et est conforme aux fonctionnalités spécifiées par un tableau d’objets.

BuildChannelListener<TChannel>(BindingParameterCollection)

Génère l'écouteur de canal sur le service qui accepte un type de canal donné et est conforme aux fonctionnalités spécifiées par une collection de paramètres de liaison.

BuildChannelListener<TChannel>(Object[])

Génère l'écouteur de canal sur le service qui accepte un type de canal donné et est conforme aux fonctionnalités spécifiées.

BuildChannelListener<TChannel>(Uri, BindingParameterCollection)

Génère l'écouteur de canal sur le service qui accepte un type de canal donné et est conforme aux fonctionnalités spécifiées.

BuildChannelListener<TChannel>(Uri, Object[])

Génère l'écouteur de canal sur le service qui accepte un type de canal donné et est conforme aux fonctionnalités spécifiées.

BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection)

Génère l'écouteur de canal sur le service qui accepte un type de canal donné et est conforme aux fonctionnalités spécifiées.

BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection)

Génère l'écouteur de canal sur le service qui accepte un type de canal donné et est conforme aux fonctionnalités spécifiées.

BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[])

Génère l'écouteur de canal sur le service qui accepte un type de canal donné et est conforme aux fonctionnalités spécifiées.

BuildChannelListener<TChannel>(Uri, String, Object[])

Génère l'écouteur de canal sur le service qui accepte un type de canal donné et est conforme aux fonctionnalités spécifiées.

CanBuildChannelFactory<TChannel>(BindingParameterCollection)

Retourne une valeur qui indique si la liaison actuelle peut générer sur le client une pile de fabriques de canaux conforme à la collection de paramètres de liaison spécifiée.

CanBuildChannelFactory<TChannel>(Object[])

Retourne une valeur qui indique si la liaison actuelle peut générer sur le client une pile de fabriques de canaux conforme aux exigences définies par un tableau d’objets.

CanBuildChannelListener<TChannel>(BindingParameterCollection)

Retourne une valeur qui indique si la liaison actuelle peut générer sur le service une pile d’écouteurs de canal conforme à la collection de paramètres de liaison spécifiée.

CanBuildChannelListener<TChannel>(Object[])

Retourne une valeur qui indique si la liaison actuelle peut générer sur le service une pile d’écouteurs de canal conforme aux critères spécifiés dans un tableau d’objets.

CreateBindingElements()

Dans le cas d'un remplacement au sein d'une classe dérivée, crée une collection qui contient les éléments de liaison qui font partie de la liaison actuelle.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetProperty<T>(BindingParameterCollection)

Retourne un objet typé demandé (s’il existe) à partir de la couche appropriée dans la pile de liaison.

GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ShouldSerializeName()

Retourne une valeur indiquant si le nom de la liaison doit être sérialisé.

ShouldSerializeNamespace()

Retourne une valeur indiquant si l’espace de noms de la liaison doit être sérialisé.

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à