Compartilhar via


HttpTransportBindingElement Classe

Definição

Representa o elemento de associação usado para especificar um transporte HTTP para transmissão de 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
HttpTransportBindingElement
Derivado
Implementações

Exemplos

O código a seguir 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 também pode ser usado em um arquivo de configuração, conforme mostrado na configuração a seguir.

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

Comentários

A HttpTransportBindingElement classe é o ponto de partida para criar uma associação personalizada que implementa o protocolo de transporte HTTP. HTTP é o transporte primário usado para fins de interoperabilidade. Esse transporte tem suporte do WCF (Windows Communication Foundation) para garantir a interoperabilidade com outras pilhas de serviços Web não WCF.

O modelo de serviço WCF usa essa classe para criar objetos de fábrica que implementam as IChannelFactory interfaces e IChannelListener . Esses objetos de fábrica, por sua vez, criam os canais e ouvintes que transmitem mensagens SOAP usando o protocolo HTTP.

Você configura as fábricas que essa classe cria definindo suas propriedades, como AuthenticationScheme, HostNameComparisonModee MaxBufferSize.

Você também pode definir propriedades na classe base, TransportBindingElement, como ManualAddressing, MaxReceivedMessageSizee MaxBufferPoolSize. Para obter uma lista completa de propriedades, consulte TransportBindingElement.

Construtores

HttpTransportBindingElement()

Inicializa uma nova instância da classe HttpTransportBindingElement.

HttpTransportBindingElement(HttpTransportBindingElement)

Inicializa uma nova instância da classe HttpTransportBindingElement usando outro elemento de associação.

Propriedades

AllowCookies

Obtém ou define um valor que indica se o cliente aceita cookies e propaga-os em solicitações futuras.

AuthenticationScheme

Obtém ou define o esquema de autenticação usado para autenticar solicitações de cliente sendo processadas por um ouvinte HTTP.

BypassProxyOnLocal

Obtém ou define um valor que indica se os proxies são ignorados para endereços locais.

DecompressionEnabled

Obtém ou define se o processo para retornar dados de mensagem compactados para o tamanho e o formato originais está habilitado.

ExtendedProtectionPolicy

Obtém ou define o valor da política de segurança estendida usada pelo servidor para validar as conexões de cliente recebidas.

HostNameComparisonMode

Obtém ou define um valor que indica se o nome do host é usado para alcançar o serviço ao fazer correspondência no URI.

KeepAliveEnabled

Obtém ou define um valor que indica se será feita uma conexão persistente com um ponto de extremidade de serviço.

ManualAddressing

Obtém ou define um valor que indica se o endereçamento manual da mensagem é necessário.

(Herdado de TransportBindingElement)
MaxBufferPoolSize

Obtém ou define o tamanho máximo, em bytes, de qualquer pool de buffer usado pelo transporte.

(Herdado de TransportBindingElement)
MaxBufferSize

Obtém ou define o tamanho máximo do buffer a ser usado. Para mensagens em buffer, esse valor é o mesmo que MaxReceivedMessageSize. Para mensagens transmitidas, esse valor é o tamanho máximo dos cabeçalhos SOAP, que devem ser lidos no modo de buffer.

MaxPendingAccepts

Obtém ou define o número máximo de conexões que o serviço pode aceitar simultaneamente.

MaxReceivedMessageSize

Obtém ou define o tamanho de mensagem máximo permitido, em bytes, que pode ser recebido.

(Herdado de TransportBindingElement)
MessageHandlerFactory

Obtém ou define a fábrica de manipulador de mensagens de transporte HTTP.

Proxy

Representa o elemento de associação usado para especificar um transporte HTTP para transmissão de mensagens.

ProxyAddress

Obtém ou define um URI que contém o endereço do proxy a ser usado para solicitações HTTP.

ProxyAuthenticationScheme

Obtém ou define o esquema de autenticação usado para autenticar solicitações de cliente processadas por um proxy HTTP.

Realm

Obtém ou define o realm de autenticação.

RequestInitializationTimeout

Obtém ou define o tempo limite da inicialização solicitada.

Scheme

Obtém o esquema do URI para o transporte.

TransferMode

Obtém ou define o modo de transferência.

UnsafeConnectionNtlmAuthentication

Obtém ou define um valor que indica se o Compartilhamento de Conexão Não Segura está habilitado no servidor. Se estiver habilitado, a autenticação NTLM será executada uma vez em cada conexão TCP.

UseDefaultWebProxy

Obtém ou define um valor que indica se as configurações de proxy para todo o computador são usadas em vez de configurações específicas do usuário.

WebSocketSettings

Obtém ou define a configuração de soquete da Web do elemento de associação.

Métodos

BuildChannelFactory<TChannel>(BindingContext)

Cria uma fábrica de canais que pode ser usada para criar um canal.

BuildChannelListener<TChannel>(BindingContext)

Cria um ouvinte de canais do tipo especificado.

BuildChannelListener<TChannel>(BindingContext)

Inicializa um ouvinte de canais para aceitar canais de um tipo especificado do contexto de associação.

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

Determina se uma fábrica de canais do tipo especificado pode ser criada.

CanBuildChannelListener<TChannel>(BindingContext)

Determina se um ouvinte de canais do tipo especificado pode ser criado.

CanBuildChannelListener<TChannel>(BindingContext)

Retorna um valor que indica se o elemento de associação pode criar um ouvinte para um tipo de canal específico.

(Herdado de BindingElement)
Clone()

Cria uma nova instância que é uma cópia do elemento de associação atual.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

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

Obtém uma propriedade do BindingContext especificado.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ShouldSerializeExtendedProtectionPolicy()

Retorna uma valor que indica que não é possível serializar com XAML a política de proteção estendida.

ShouldSerializeMessageHandlerFactory()

Determina se a fábrica de manipulador de mensagens deve ser serializada.

ShouldSerializeWebSocketSettings()

Determina se as configurações de soquete da Web devem ser serializadas.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
UpdateAuthenticationSchemes(BindingContext)

Atualiza os esquemas de autenticação de transporte que contêm o contexto de associação.

Implantações explícitas de interface

IPolicyExportExtension.ExportPolicy(MetadataExporter, PolicyConversionContext)

Exporta uma asserção de política personalizada sobre associações.

IWsdlExportExtension.ExportContract(WsdlExporter, WsdlContractConversionContext)

Grava elementos de WSDL (linguagem WSDL) personalizados na WSDL gerada para um contrato.

IWsdlExportExtension.ExportEndpoint(WsdlExporter, WsdlEndpointConversionContext)

Grava elementos WSDL (linguagem WSDL) personalizados no WSDL gerado para um ponto de extremidade.

Aplica-se a