Compartir vía


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

Ejemplos

En el código siguiente se muestra cómo usar imperativamente .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 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 HttpTransportBindingElement clase es el punto de partida para crear un enlace personalizado que implementa el protocolo de transporte HTTP. HTTP es el transporte principal que se usa con fines de interoperabilidad. Este transporte es compatible con Windows Communication Foundation (WCF) para garantizar la interoperabilidad con otras pilas de servicios web que no sean 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 fábrica, a su vez, crean los canales y los agentes de escucha que transmiten mensajes SOAP mediante el protocolo HTTP.

Configure las factorías que crea esta clase estableciendo sus propiedades, como AuthenticationScheme, HostNameComparisonModey MaxBufferSize.

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

Constructores

Nombre Description
HttpTransportBindingElement()

Inicializa una nueva instancia de la clase HttpTransportBindingElement.

HttpTransportBindingElement(HttpTransportBindingElement)

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

Propiedades

Nombre Description
AllowCookies

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

AuthenticationScheme

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

BypassProxyOnLocal

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

DecompressionEnabled

Obtiene o establece si el proceso para devolver los datos comprimidos del mensaje a su tamaño y formato originales está habilitado.

ExtendedProtectionPolicy

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

HostNameComparisonMode

Obtiene o establece un valor que indica si el nombre de host se usa para llegar al servicio al buscar coincidencias en el URI.

KeepAliveEnabled

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

ManualAddressing

Obtiene o establece un valor que indica si se requiere el direccionamiento manual del mensaje.

(Heredado de TransportBindingElement)
MaxBufferPoolSize

Obtiene o establece el tamaño máximo, en bytes, de los grupos de búferes utilizados 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, este valor es el tamaño máximo de los encabezados SOAP, que se deben leer en modo almacenado 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

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

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 las solicitudes de cliente que procesa un proxy HTTP.

Realm

Obtiene o establece el dominio de autenticación.

RequestInitializationTimeout

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

Scheme

Obtiene el esquema de URI para el transporte.

TransferMode

Obtiene o establece el modo de transferencia.

UnsafeConnectionNtlmAuthentication

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

UseDefaultWebProxy

Obtiene o establece un valor que indica si se usa la configuración de proxy de toda la máquina en lugar de la configuración específica del usuario.

WebSocketSettings

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

Métodos

Nombre Description
BuildChannelFactory<TChannel>(BindingContext)

Crea un generador de canales que se puede usar para crear un canal.

BuildChannelListener<TChannel>(BindingContext)

Crea un agente de escucha de canal del tipo especificado.

CanBuildChannelFactory<TChannel>(BindingContext)

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

CanBuildChannelListener<TChannel>(BindingContext)

Determina si se puede crear un agente de escucha de canal del tipo especificado.

Clone()

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

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
GetHashCode()

Actúa como función hash predeterminada.

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

Obtiene una propiedad del especificado BindingContext.

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
ShouldSerializeExtendedProtectionPolicy()

Devuelve un valor que indica que no es posible serializar xaml la directiva de protección ampliada.

ShouldSerializeMessageHandlerFactory()

Determina si se debe serializar el generador del controlador de mensajes.

ShouldSerializeWebSocketSettings()

Determina si se debe serializar la configuración del socket web.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
UpdateAuthenticationSchemes(BindingContext)

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

Implementaciones de interfaz explícitas

Nombre Description
IPolicyExportExtension.ExportPolicy(MetadataExporter, PolicyConversionContext)

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

IWsdlExportExtension.ExportContract(WsdlExporter, WsdlContractConversionContext)

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

IWsdlExportExtension.ExportEndpoint(WsdlExporter, WsdlEndpointConversionContext)

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

Se aplica a