Partager via


HttpTransportBindingElement Classe

Définition

Représente l'élément de liaison utilisé afin de spécifier un transport HTTP pour transmettre des messages.

public ref class HttpTransportBindingElement : System::ServiceModel::Channels::TransportBindingElement
public ref class HttpTransportBindingElement : System::ServiceModel::Channels::TransportBindingElement, System::ServiceModel::Description::IPolicyExportExtension, System::ServiceModel::Description::IWsdlExportExtension
public class HttpTransportBindingElement : System.ServiceModel.Channels.TransportBindingElement
public class HttpTransportBindingElement : System.ServiceModel.Channels.TransportBindingElement, System.ServiceModel.Description.IPolicyExportExtension, System.ServiceModel.Description.IWsdlExportExtension
type HttpTransportBindingElement = class
    inherit TransportBindingElement
type HttpTransportBindingElement = class
    inherit TransportBindingElement
    interface IWsdlExportExtension
    interface IPolicyExportExtension
Public Class HttpTransportBindingElement
Inherits TransportBindingElement
Public Class HttpTransportBindingElement
Inherits TransportBindingElement
Implements IPolicyExportExtension, IWsdlExportExtension
Héritage
HttpTransportBindingElement
Dérivé
Implémente

Exemples

Le code suivant illustre l'utilisation obligatoire de HttpTransportBindingElement.

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

// Create a ServiceHost for the CalculatorService type and provide the base address.
using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress))
{
    // Create a custom binding that contains two binding elements.
    ReliableSessionBindingElement reliableSession = new ReliableSessionBindingElement();
    reliableSession.Ordered = true;

    HttpTransportBindingElement httpTransport = new HttpTransportBindingElement();
    httpTransport.AuthenticationScheme = System.Net.AuthenticationSchemes.Anonymous;
    httpTransport.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;

    CustomBinding binding = new CustomBinding(reliableSession, httpTransport);

    // Add an endpoint using that binding.
    serviceHost.AddServiceEndpoint(typeof(ICalculator), binding, "");

    // Add a MEX endpoint.
    ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
    smb.HttpGetEnabled = true;
    smb.HttpGetUrl = new Uri("http://localhost:8001/servicemodelsamples");
    serviceHost.Description.Behaviors.Add(smb);

    // 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();
}
Dim baseAddress As New Uri("http://localhost:8000/servicemodelsamples/service")

' Create a ServiceHost for the CalculatorService type and provide the base address.
Using serviceHost As New ServiceHost(GetType(CalculatorService), baseAddress)
    ' Create a custom binding that contains two binding elements.
    Dim reliableSession As New ReliableSessionBindingElement()
    reliableSession.Ordered = True

    Dim httpTransport As New HttpTransportBindingElement()
    httpTransport.AuthenticationScheme = System.Net.AuthenticationSchemes.Anonymous
    httpTransport.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard

    Dim binding As New CustomBinding(reliableSession, httpTransport)

    ' Add an endpoint using that binding.
    serviceHost.AddServiceEndpoint(GetType(ICalculator), binding, "")

    ' Add a MEX endpoint.
    Dim smb As New ServiceMetadataBehavior()
    smb.HttpGetEnabled = True
    smb.HttpGetUrl = New Uri("http://localhost:8001/servicemodelsamples")
    serviceHost.Description.Behaviors.Add(smb)

    ' 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()
End Using

HttpTransportBindingElement peut également être utilisé dans un fichier de configuration, comme indiqué dans la configuration suivante.

<bindings>  
  <customBinding>  
    <binding name="Binding1">  
      <reliableSession acknowledgementInterval="00:00:00.2000000" enableFlowControl="true"  
                        maxTransferWindowSize="32" inactivityTimeout="00:10:00" maxPendingChannels="128"  
                        maxRetryCount="8" ordered="true" />  
      <security mode="None"/>  
      <httpTransport authenticationScheme="Anonymous" bypassProxyOnLocal="false"  
                    hostNameComparisonMode="StrongWildcard"   
                    proxyAuthenticationScheme="Anonymous" realm=""   
                    useDefaultWebProxy="true" />  
    </binding>  
  </customBinding>  
</bindings>  

Remarques

La classe HttpTransportBindingElement constitue le point de départ pour créer une liaison personnalisée qui implémente le protocole de transport HTTP. HTTP est le principal transport utilisé à des fins d'interopérabilité. Ce transport est pris en charge par Windows Communication Foundation (WCF) pour garantir l’interopérabilité avec d’autres piles de services Web non WCF.

Le modèle de service WCF utilise cette classe pour créer des objets de fabrique qui implémentent les IChannelFactory interfaces et IChannelListener . Ces objets de fabrique, à leur tour, créent les canaux et les écouteurs qui transmettent les messages SOAP par le biais du protocole HTTP.

Pour configurer les fabriques que cette classe crée, définissez ses propriétés, par exemple : AuthenticationScheme, HostNameComparisonMode et MaxBufferSize.

Vous pouvez également définir des propriétés de la classe de base TransportBindingElement, telles que : ManualAddressing, MaxReceivedMessageSize et MaxBufferPoolSize. Pour obtenir la liste complète des propriétés, consultez TransportBindingElement.

Constructeurs

HttpTransportBindingElement()

Initialise une nouvelle instance de la classe HttpTransportBindingElement.

HttpTransportBindingElement(HttpTransportBindingElement)

Initialise une nouvelle instance de la classe HttpTransportBindingElement à l'aide d'un autre élément de liaison.

Propriétés

AllowCookies

Obtient ou définit une valeur qui indique si le client accepte les cookies et les propage sur les requêtes ultérieures.

AuthenticationScheme

Obtient ou définit le modèle d'authentification utilisé pour authentifier les demandes du client qui sont traitées par un écouteur HTTP.

BypassProxyOnLocal

Obtient ou définit une valeur qui indique si les proxies sont ignorés pour les adresses locales.

DecompressionEnabled

Obtient ou définit une valeur indiquant si le processus de retour des données de message compressées à leur taille et leur format d'origine est activé.

ExtendedProtectionPolicy

Obtient ou définit la valeur de la stratégie de sécurité étendue utilisée par le serveur pour valider les connexions clientes entrantes.

HostNameComparisonMode

Obtient ou définit une valeur qui indique si le nom d'hôte est utilisé pour atteindre le service lors de la correspondance avec l'URI.

KeepAliveEnabled

Obtient ou définit une valeur qui indique s'il faut établir une connexion permanente à un point de terminaison de service.

ManualAddressing

Obtient ou définit une valeur qui indique si l'adressage manuel du message est requis.

(Hérité de TransportBindingElement)
MaxBufferPoolSize

Obtient ou définit la taille maximale (en octets) des pools de mémoires tampons utilisés par le transport.

(Hérité de TransportBindingElement)
MaxBufferSize

Obtient ou définit la taille maximale de la mémoire tampon à utiliser. Pour les messages mis en mémoire tampon, cette valeur est identique à MaxReceivedMessageSize. Pour les messages transférés en continu, cette valeur désigne la taille maximale des en-têtes SOAP, qui doivent être lus en mode de mémoire tampon.

MaxPendingAccepts

Obtient ou définit le nombre maximal de connexions que le service peut accepter simultanément.

MaxReceivedMessageSize

Obtient ou définit la taille maximale du message autorisée (en octets) qui peut être reçue.

(Hérité de TransportBindingElement)
MessageHandlerFactory

Obtient ou définit la fabrique de gestionnaires de messages de transport HTTP.

Proxy

Représente l'élément de liaison utilisé afin de spécifier un transport HTTP pour transmettre des messages.

ProxyAddress

Obtient ou définit un URI qui contient l'adresse du proxy à utiliser pour les demandes HTTP.

ProxyAuthenticationScheme

Obtient ou définit le modèle d'authentification utilisé pour authentifier les demandes du client qui sont traitées par un proxy HTTP.

Realm

Obtient ou définit le domaine d'authentification.

RequestInitializationTimeout

Obtient ou définit le délai d'attente d'initialisation demandé.

Scheme

Obtient le schéma d'URI pour le transport.

TransferMode

Obtient ou définit le mode de transfert.

UnsafeConnectionNtlmAuthentication

Obtient ou définit une valeur qui indique si le partage de connexion non sécurisé est activé sur le serveur. S'il est activé, l'authentification NTLM est exécutée une fois sur chaque connexion TCP.

UseDefaultWebProxy

Obtient ou définit une valeur qui indique si les paramètres de proxy à l'échelle de l'ordinateur sont utilisés à la place des paramètres spécifiques de l'utilisateur.

WebSocketSettings

Obtient ou définit la configuration du WebSocket de l'élément de liaison.

Méthodes

BuildChannelFactory<TChannel>(BindingContext)

Crée une fabrique de canaux qui peut être utilisée pour créer un canal.

BuildChannelListener<TChannel>(BindingContext)

Crée un écouteur de canal du type spécifié.

BuildChannelListener<TChannel>(BindingContext)

Initialise un écouteur de canal pour accepter les canaux d’un type donné issus du contexte de liaison.

(Hérité de BindingElement)
CanBuildChannelFactory<TChannel>(BindingContext)

Détermine si une fabrication de canal du type spécifié peut être construite.

CanBuildChannelListener<TChannel>(BindingContext)

Détermine si un écouteur de canal du type spécifié peut être construit.

CanBuildChannelListener<TChannel>(BindingContext)

Retourne une valeur qui indique si l’élément de liaison peut générer un écouteur pour un type de canal spécifique.

(Hérité de BindingElement)
Clone()

Crée une instance représentant une copie de l'élément de liaison en cours.

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>(BindingContext)

Obtient une propriété à partir du BindingContext spécifié.

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)
ShouldSerializeExtendedProtectionPolicy()

Retourne une valeur qui indique qu'il n'est pas possible de sérialiser en XAML la stratégie de protection étendue.

ShouldSerializeMessageHandlerFactory()

Détermine si la fabrique de gestionnaires de messages doit être sérialisée.

ShouldSerializeWebSocketSettings()

Détermine si les paramètres de socket Web doivent être sérialisés.

ToString()

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

(Hérité de Object)
UpdateAuthenticationSchemes(BindingContext)

Met à jour les schémas d'authentification de transport qui contiennent le contexte de liaison.

Implémentations d’interfaces explicites

IPolicyExportExtension.ExportPolicy(MetadataExporter, PolicyConversionContext)

Exporte une assertion de stratégie personnalisée concernant les liaisons.

IWsdlExportExtension.ExportContract(WsdlExporter, WsdlContractConversionContext)

Écrit des éléments WSDM (Web Services Description Language) personnalisés dans le service WSDL généré pour un contrat.

IWsdlExportExtension.ExportEndpoint(WsdlExporter, WsdlEndpointConversionContext)

Écrit des éléments WSDM (Web Services Description Language) personnalisés dans le service WSDL généré pour un point de terminaison.

S’applique à