HttpTransportBindingElement Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Representa o elemento de ligação usado para especificar um transporte HTTP para transmitir mensagens.
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
- Herança
- Derivado
- Implementações
Exemplos
O código seguinte mostra como usar imperativamente o 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 pode também ser usado num ficheiro de configuração, conforme mostrado na configuração seguinte.
<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>
Observações
A HttpTransportBindingElement classe é o ponto de partida para criar uma ligação personalizada que implementa o protocolo de transporte HTTP. HTTP é o principal transporte utilizado para fins de interoperabilidade. Este transporte é suportado pela Windows Communication Foundation (WCF) para garantir interoperabilidade com outras pilhas de serviços Web não WCF.
O modelo de serviço WCF utiliza esta classe para criar objetos de fábrica que implementam as IChannelFactory interfaces de and IChannelListener . Estes objetos de fábrica, por sua vez, criam os canais e ouvintes que transmitem mensagens SOAP usando o protocolo HTTP.
Configura-se as fábricas que esta classe cria definindo as suas propriedades, como AuthenticationScheme, HostNameComparisonMode, e MaxBufferSize.
Também pode definir propriedades na classe base, TransportBindingElement, como ManualAddressing, MaxReceivedMessageSize, e MaxBufferPoolSize. Para uma lista completa de propriedades, veja TransportBindingElement.
Construtores
| Name | Description |
|---|---|
| HttpTransportBindingElement() |
Inicializa uma nova instância da HttpTransportBindingElement classe. |
| HttpTransportBindingElement(HttpTransportBindingElement) |
Inicializa uma nova instância da HttpTransportBindingElement classe usando outro elemento de ligação. |
Propriedades
| Name | Description |
|---|---|
| AllowCookies |
Recebe ou define um valor que indica se o cliente aceita cookies e propaga-os em pedidos futuros. |
| AuthenticationScheme |
Obtém ou define o esquema de autenticação usado para autenticar pedidos de cliente processados por um ouvinte HTTP. |
| BypassProxyOnLocal |
Recebe ou define um valor que indica se os proxies são ignorados para endereços locais. |
| DecompressionEnabled |
Obtém ou define se o processo de retorno dos dados comprimidos da mensagem ao seu tamanho e formato originais está ativado. |
| ExtendedProtectionPolicy |
Obtém ou define o valor da política de segurança estendida usada pelo servidor para validar as ligações dos clientes recebidos. |
| HostNameComparisonMode |
Recebe ou define um valor que indica se o nome de host é usado para chegar ao serviço quando corresponde no URI. |
| KeepAliveEnabled |
Recebe ou define um valor que indica se deve fazer uma ligação persistente a um endpoint de serviço. |
| ManualAddressing |
Recebe ou define um valor que indica se é necessário endereçar manualmente a mensagem. (Herdado de TransportBindingElement) |
| MaxBufferPoolSize |
Obtém ou define o tamanho máximo, em bytes, de quaisquer pools de buffer usados pelo transporte. (Herdado de TransportBindingElement) |
| MaxBufferSize |
Obtém ou define o tamanho máximo do buffer a usar. Para mensagens em buffer, este valor é o mesmo que MaxReceivedMessageSize. Para mensagens transmitidas, este valor é o tamanho máximo dos cabeçalhos SOAP, que devem ser lidos em modo bufferizado. |
| MaxPendingAccepts |
Obtém ou define o número máximo de ligações que o serviço pode aceitar simultaneamente. |
| MaxReceivedMessageSize |
Obtém ou define o tamanho máximo permitido da mensagem, em bytes, que pode ser recebido. (Herdado de TransportBindingElement) |
| MessageHandlerFactory |
Obtém ou define a fábrica do handler de mensagens de transporte Http. |
| ProxyAddress |
Obtém ou define um URI que contém o endereço do proxy para usar em pedidos HTTP. |
| ProxyAuthenticationScheme |
Obtém ou define o esquema de autenticação usado para autenticar pedidos de cliente processados por um proxy HTTP. |
| Realm |
Obtém ou define o reino de autenticação. |
| RequestInitializationTimeout |
Recebe ou define o tempo de inicialização solicitado. |
| Scheme |
Recebe o esquema URI do transporte. |
| TransferMode |
Recebe ou define o modo de transferência. |
| UnsafeConnectionNtlmAuthentication |
Recebe ou define um valor que indica se a Partilha de Ligação Insegura está ativada no servidor. Se ativada, a autenticação NTLM é realizada uma vez em cada ligação TCP. |
| UseDefaultWebProxy |
Recebe ou define um valor que indica se as definições do proxy a nível da máquina são usadas em vez das definições específicas do utilizador. |
| WebSocketSettings |
Obtém ou define a configuração do socket web do elemento de ligação. |
Métodos
| Name | Description |
|---|---|
| BuildChannelFactory<TChannel>(BindingContext) |
Cria uma fábrica de canais que pode ser usada para criar um canal. |
| BuildChannelListener<TChannel>(BindingContext) |
Cria um ouvinte de canal do tipo especificado. |
| CanBuildChannelFactory<TChannel>(BindingContext) |
Determina se pode ser construída uma fábrica de canais do tipo especificado. |
| CanBuildChannelListener<TChannel>(BindingContext) |
Determina se é possível construir um ouvinte de canal do tipo especificado. |
| Clone() |
Cria uma nova instância que é uma cópia do elemento de ligação atual. |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetProperty<T>(BindingContext) |
Obtém uma propriedade a partir do especificado BindingContext. |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| ShouldSerializeExtendedProtectionPolicy() |
Devolve um valorindicando que não é possível serializar XAML a política de proteção estendida. |
| ShouldSerializeMessageHandlerFactory() |
Determina se a fábrica do manipulador de mensagens deve ser serializada. |
| ShouldSerializeWebSocketSettings() |
Determina se as definições do web socket devem ser serializadas. |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |
| UpdateAuthenticationSchemes(BindingContext) |
Atualiza os esquemas de autenticação de transporte que contêm o contexto de ligação. |
Implementações de Interface Explícita
| Name | Description |
|---|---|
| IPolicyExportExtension.ExportPolicy(MetadataExporter, PolicyConversionContext) |
Exporta uma afirmação de política personalizada sobre ligações. |
| IWsdlExportExtension.ExportContract(WsdlExporter, WsdlContractConversionContext) |
Escreve elementos personalizados da Web Services Description Language (WSDL) no WSDL gerado para um contrato. |
| IWsdlExportExtension.ExportEndpoint(WsdlExporter, WsdlEndpointConversionContext) |
Escreve elementos personalizados da Web Services Description Language (WSDL) no WSDL gerado para um endpoint. |