HttpTransportBindingElement Clase

Definición

Representa el elemento de enlace utilizado para especificar un transporte HTTP para transmitir mensajes.

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
type HttpTransportBindingElement = class
    inherit TransportBindingElement
    interface IPolicyExportExtension
    interface IWsdlExportExtension
Public Class HttpTransportBindingElement
Inherits TransportBindingElement
Public Class HttpTransportBindingElement
Inherits TransportBindingElement
Implements IPolicyExportExtension, IWsdlExportExtension
Herencia
HttpTransportBindingElement
Derivado
Implementaciones

Ejemplos

El código siguiente muestra cómo utilizar HttpTransportBindingElement imperativamente.

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 también se puede usar en un archivo de configuración, como se muestra en la siguiente configuración.

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

Comentarios

La clase HttpTransportBindingElement es el punto inicial para crear un enlace personalizado que implementa el protocolo de transporte HTTP. HTTP es el transporte primario utilizado para fines de interoperabilidad. Este transporte es compatible con Windows Communication Foundation (WCF) para garantizar la interoperabilidad con otras pilas de servicios web que no son WCF.

El modelo de servicio WCF usa esta clase para crear objetos de fábrica que implementan las IChannelFactory interfaces y IChannelListener . Estos objetos de generador a su vez crean los canales y las escuchas que transmiten mensajes SOAP mediante el protocolo HTTP.

Puede configurar los generadores que esta clase crea estableciendo sus propiedades, como: AuthenticationScheme, HostNameComparisonMode y MaxBufferSize.

También puede establecer las propiedades en la clase base TransportBindingElement, como ManualAddressing, MaxReceivedMessageSize y MaxBufferPoolSize. Para obtener una lista de propiedades completa, vea TransportBindingElement.

Constructores

HttpTransportBindingElement()

Inicializa una nueva instancia de la clase HttpTransportBindingElement.

HttpTransportBindingElement(HttpTransportBindingElement)

Inicializa una nueva instancia de la clase HttpTransportBindingElement usando otro elemento de enlace.

Propiedades

AllowCookies

Obtiene o establece un valor que indica si el cliente acepta las cookies y las propaga en solicitudes futuras.

AuthenticationScheme

Obtiene o establece el esquema de autenticación usado para autenticar solicitudes de cliente que son procesadas por un agente de escucha HTTP.

BypassProxyOnLocal

Obtiene o establece un valor que indica si los proxys se omiten para las direcciones locales.

DecompressionEnabled

Obtiene o establece si está habilitado el proceso de recuperación del tamaño y formato originales de los datos comprimidos del mensaje.

ExtendedProtectionPolicy

Obtiene o establece el valor de la directiva de seguridad extendida que usa el servidor para validar las conexiones de cliente entrantes.

HostNameComparisonMode

Obtiene o establece un valor que indica si el nombre del host se usa para alcanzar el servicio al coincidir con el URI.

KeepAliveEnabled

Obtiene o establece un valor que indica si realizar una conexión persistente a un punto de conexión de servicio.

LegacyExtendedProtectionPolicy
ManualAddressing

Obtiene o establece un valor que indica si se requiere la dirección manual del mensaje.

(Heredado de TransportBindingElement)
MaxBufferPoolSize

Obtiene o establece el tamaño máximo, en bytes, de cualquier grupo de búferes utilizado por el transporte.

(Heredado de TransportBindingElement)
MaxBufferSize

Obtiene o establece el tamaño máximo del búfer que se va a usar. Para los mensajes almacenados en búfer este valor es el mismo que MaxReceivedMessageSize. Para los mensajes transmitidos por secuencias, este valor tiene el tamaño máximo de los encabezados SOAP, que se deben leer en modo de almacenamiento en búfer.

MaxPendingAccepts

Obtiene o establece el número máximo de conexiones que el servicio puede aceptar simultáneamente.

MaxReceivedMessageSize

Obtiene o establece el tamaño máximo permitido del mensaje, en bytes, que se puede recibir.

(Heredado de TransportBindingElement)
MessageHandlerFactory

Obtiene o establece el generador de controladores de mensajes de transporte HTTP.

Proxy
ProxyAddress

Obtiene o establece un URI que contiene la dirección del proxy que se va a usar para las solicitudes HTTP.

ProxyAuthenticationScheme

Obtiene o establece el esquema de autenticación usado para autenticar solicitudes de cliente que son procesadas por un proxy HTTP.

Realm

Obtiene o establece el dominio de autenticación.

RequestInitializationTimeout

Obtiene o establece el tiempo de espera de inicialización solicitada.

Scheme

Obtiene el esquema URI para el transporte.

TransferMode

Obtiene o establece el modo de transferencia.

UnsafeConnectionNtlmAuthentication

Obtiene o establece un valor que indica si la conexión compartida no segura está habilitada en el servidor. Si está habilitado, la autenticación NTLM se realiza una vez en cada conexión TCP.

UseDefaultWebProxy

Obtiene o establece un valor que indica si se utiliza la configuración del proxy del equipo en lugar de la configuración específica del usuario.

WebSocketSettings

Obtiene o establece la configuración de socket web del elemento de enlace.

Métodos

BuildChannelFactory<TChannel>(BindingContext)

Crea un generador del canal que se puede utilizar para crear un canal.

BuildChannelListener<TChannel>(BindingContext)

Crea un agente de escucha del canal del tipo especificado.

BuildChannelListener<TChannel>(BindingContext)

Inicializa una escucha de canales para aceptar canales de un tipo especificado a partir del contexto de enlace.

(Heredado de BindingElement)
CanBuildChannelFactory<TChannel>(BindingContext)

Determina si se puede crear un generador de canales del tipo especificado.

CanBuildChannelListener<TChannel>(BindingContext)

Determina si se puede crear una escucha de canales del tipo especificado.

CanBuildChannelListener<TChannel>(BindingContext)

Devuelve un valor que indica si el elemento de enlace puede compilar una escucha para un tipo específico de canal.

(Heredado de BindingElement)
Clone()

Crea una nueva instancia que es una copia del elemento de enlace actual.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetProperty<T>(BindingContext)

Obtiene una propiedad a partir de BindingContext especificado.

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ShouldSerializeExtendedProtectionPolicy()

Devuelve un valor que indica que no se puede serializar en XAML la directiva de protección extendida.

ShouldSerializeMessageHandlerFactory()

Determina si el generador de controladores de mensajes debe serializarse.

ShouldSerializeWebSocketSettings()

Determina si la configuración de socket web debe serializarse.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
UpdateAuthenticationSchemes(BindingContext)

Actualiza los esquemas de autenticación de transporte que contiene el contexto de enlace.

Implementaciones de interfaz explícitas

IPolicyExportExtension.ExportPolicy(MetadataExporter, PolicyConversionContext)

Exporta una aserción de directiva personalizada sobre los enlaces.

IWsdlExportExtension.ExportContract(WsdlExporter, WsdlContractConversionContext)

Escribe los elementos del lenguaje de descripción de servicios Web (WSDL) personalizados en el WSDL generado para un contrato.

IWsdlExportExtension.ExportEndpoint(WsdlExporter, WsdlEndpointConversionContext)

Escribe los elementos del lenguaje de descripción de servicios Web (WSDL) personalizados en el WSDL generado para un punto de conexión.

Se aplica a