HttpTransportBindingElement Classe

Definição

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

Aplica-se a