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