Partilhar via


HttpTransportBindingElement Classe

Definição

Representa o elemento de associaçã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
HttpTransportBindingElement
Derivado
Implementações

Exemplos

O código a seguir mostra como usar HttpTransportBindingElemento .

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 é compatível com o WCF (Windows Communication Foundation) para garantir a interoperabilidade com outras pilhas de serviços Web não WCF.

O modelo de serviço do WCF usa essa classe para criar objetos de fábrica que implementam o e IChannelListener as IChannelFactory interfaces. 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, TransportBindingElementcomo ManualAddressing, MaxReceivedMessageSizee MaxBufferPoolSize. Para obter uma lista completa de propriedades, consulte TransportBindingElement.

Construtores

Nome Description
HttpTransportBindingElement()

Inicializa uma nova instância da classe HttpTransportBindingElement.

HttpTransportBindingElement(HttpTransportBindingElement)

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

Propriedades

Nome Description
AllowCookies

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

AuthenticationScheme

Obtém ou define o esquema de autenticação usado para autenticar solicitações de cliente que estão 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 seu tamanho e formato originais está habilitado.

ExtendedProtectionPolicy

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

HostNameComparisonMode

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

KeepAliveEnabled

Obtém ou define um valor que indica se é necessário fazer 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 todos os pools de buffer usados 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 em 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 máximo de mensagem permitido, em bytes, que pode ser recebido.

(Herdado de TransportBindingElement)
MessageHandlerFactory

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

Proxy

Representa o elemento de associação usado para especificar um transporte HTTP para transmitir 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 que estão sendo processadas por um proxy HTTP.

Realm

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

RequestInitializationTimeout

Obtém ou define o tempo limite de inicialização solicitado.

Scheme

Obtém o esquema de 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 Seguro está habilitado no servidor. Se habilitada, 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 em todo o computador são usadas em vez das configurações específicas do usuário.

WebSocketSettings

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

Métodos

Nome 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 uma fábrica de canais do tipo especificado pode ser criada.

CanBuildChannelListener<TChannel>(BindingContext)

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

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

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
ShouldSerializeExtendedProtectionPolicy()

Retorna um valor indicando que não é possível serializar a política de proteção estendida por XAML.

ShouldSerializeMessageHandlerFactory()

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

ShouldSerializeWebSocketSettings()

Determina se as configurações do 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

Nome Description
IPolicyExportExtension.ExportPolicy(MetadataExporter, PolicyConversionContext)

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

IWsdlExportExtension.ExportContract(WsdlExporter, WsdlContractConversionContext)

Grava elementos WSDL (Linguagem de Descrição de Serviços Web) personalizados no WSDL gerado para um contrato.

IWsdlExportExtension.ExportEndpoint(WsdlExporter, WsdlEndpointConversionContext)

Grava elementos WSDL (Linguagem de Descrição de Serviços Web) personalizados no WSDL gerado para um ponto de extremidade.

Aplica-se a