HttpTransportBindingElement Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
- 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. |
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 |
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 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. |