Partager via


Binding Classe

Définition

Contient les éléments de liaison qui spécifient les protocoles, les transports et les encodeurs de messages 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, chacun décrivant un aspect de la façon dont un point de terminaison communique avec d’autres points de terminaison et qui sont intégrés, de manière cohérente, dans une fabrique de canaux 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 messages. Il peut y avoir n’importe quel nombre d’éléments de liaison pour les canaux de protocole, mais un seul et un seul élément de liaison pour chaque encodeur de transport et de message. Il existe généralement six couches d’éléments de liaison dans une liaison. Seuls les éléments de liaison de transport et d’encodage au 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 d’autres transports.

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

Couche Options Obligatoire
Flux de transactions TransactionFlowBindingElement Non
Fiabilité ReliableSessionBindingElement Non
Sécurité Symétrique, asymétrique, Transport-Level Non
Modification de la forme CompositeDuplexBindingElement Non
Mises à niveau de transport Flux SSL, flux Windows, Programme de résolution d’homologue Non
Codage Texte, Binaire, MTOM, Personnalisé Oui
Transport TCP, canaux nommés, HTTP, HTTPS, MSMQ, personnalisé Oui

Chaque élément de liaison fournit la spécification permettant de créer une fabrique de canaux sur le client et un écouteur de canal sur le service. Lorsque la pile de fabrique de canaux est construite, par exemple, il existe une fabrique de canaux 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 essentielle pour établir la connexion basée sur le canal entre ces points de terminaison. Chaque fabrique et écouteur, à son tour, traite l’envoi 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’un a Binding et NamespaceName qui, ensemble, l’identifient de manière 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/. Ce nom d’utilisateur pour la liaison est distinct de la spécification du nom de protocole, qui est spécifié par la Scheme propriété. Si vous souhaitez ajouter d’autres liaisons HTTP, par exemple, vous pouvez les nommer comme vous le souhaitez et définir tous leurs schémas sur « http ». Il n’existe aucune application ou répartition de machine inhérente en fonction du Scheme. Vous évitez donc le problème courant d’impossibilité d’inscrire des gestionnaires supplémentaires pour les protocoles connus. Vous pouvez également facilement utiliser plusieurs versions d’une liaison côte à côte en donnant à chaque version un nom différent.

La Binding classe implémente l’interface IDefaultCommunicationTimeouts pour atténuer les attaques par déni de service (DOS) qui s’appuient sur la liaison des ressources pour des intervalles de temps étendus. L’implémentation spécifie les valeurs de délai d’expiration de communication pour l’ouverture et la fermeture des connexions et pour les opérations de lecture et d’écriture 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 et leurs opérations de valeurs par défaut sont résumées dans le tableau suivant.

Timeout, propriété Valeur par défaut
OpenTimeout Une minute
CloseTimeout Une minute
SendTimeout Une minute
ReceiveTimeout 10 minutes

Lorsque vous créez une liaison en hériter Binding, vous devez remplacer CreateBindingElements.

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

Constructeurs

Nom Description
Binding()

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

Binding(String, String)

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

Propriétés

Nom Description
CloseTimeout

Obtient ou définit l’intervalle de temps fourni pour une connexion à fermer avant que le transport déclenche une exception.

MessageVersion

Obtient la version du 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 fourni pour qu’une connexion s’ouvre avant que le transport déclenche une exception.

ReceiveTimeout

Obtient ou définit l’intervalle de temps pendant lequel une connexion peut rester inactive, pendant laquelle aucun message d’application n’est reçu, avant d’être supprimé.

Scheme

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

SendTimeout

Obtient ou définit l’intervalle de temps fourni pour qu’une opération d’écriture se termine avant que le transport déclenche une exception.

Méthodes

Nom Description
BuildChannelFactory<TChannel>(BindingParameterCollection)

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

BuildChannelFactory<TChannel>(Object[])

Génère la pile de fabrique de canaux sur le client qui crée un type de canal spécifié et qui satisfait 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 spécifié et qui satisfait 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 spécifié et qui satisfait 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 spécifié et qui satisfait 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 spécifié et qui satisfait 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 spécifié et qui satisfait 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 spécifié et qui satisfait 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 spécifié et qui satisfait 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 spécifié et qui satisfait aux fonctionnalités spécifiées.

CanBuildChannelFactory<TChannel>(BindingParameterCollection)

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

CanBuildChannelFactory<TChannel>(Object[])

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

CanBuildChannelListener<TChannel>(BindingParameterCollection)

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

CanBuildChannelListener<TChannel>(Object[])

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

CreateBindingElements()

En cas de substitution dans 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()

Sert de fonction de hachage par défaut.

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

Retourne un objet typé demandé, le cas échéant, à partir de la couche appropriée dans la pile de liaisons.

GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
ShouldSerializeName()

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

ShouldSerializeNamespace()

Retourne 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 à