Partilhar via


<basicHttpBinding>

Representa uma ligação que um serviço da Windows Communication Foundation (WCF) pode usar para configurar e expor endpoints capazes de comunicar com serviços Web baseados em ASMX, clientes e outros serviços que cumprem o WS-I Basic Profile 1.1.

<configuração>
   <system.serviceModel>
     <Encadernações>
       <basicHttpBinding>

Sintaxe

<basicHttpBinding>
  <binding allowCookies="Boolean"
           bypassProxyOnLocal="Boolean"
           closeTimeout="TimeSpan"
           hostNameComparisonMode="StrongWildCard/Exact/WeakWildcard"
           maxBufferPoolSize="Integer"
           maxBufferSize="Integer"
           maxReceivedMessageSize="Integer"
           messageEncoding="Text/Mtom"
           name="String"
           openTimeout="TimeSpan"
           proxyAddress="URI"
           receiveTimeout="TimeSpan"
           sendTimeout="TimeSpan"
           textEncoding="UnicodeFffeTextEncoding/Utf16TextEncoding/Utf8TextEncoding"
           transferMode="Buffered/Streamed/StreamedRequest/StreamedResponse"
           useDefaultWebProxy="Boolean">
    <security mode="None/Transport/Message/TransportWithMessageCredential/TransportCredentialOnly">
      <transport clientCredentialType="None/Basic/Digest/Ntlm/Windows/Certificate"
                 proxyCredentialType="None/Basic/Digest/Ntlm/Windows"
                 realm="String" />
      <message algorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
               clientCredentialType="UserName/Certificate" />
    </security>
    <readerQuotas maxArrayLength="Integer"
                  maxBytesPerRead="Integer"
                  maxDepth="Integer"
                  maxNameTableCharCount="Integer"
                  maxStringContentLength="Integer" />
  </binding>
</basicHttpBinding>

Atributos e Elementos

As seções a seguir descrevem atributos, elementos filho e elementos pai.

Attributes

Attribute Description
allowCookies Um valor booleano que indica se o cliente aceita cookies e propaga-os em pedidos futuros. A predefinição é false.

Pode usar esta propriedade quando interage com serviços Web ASMX que utilizam cookies. Desta forma, pode ter a certeza de que os cookies devolvidos pelo servidor são automaticamente copiados para todos os pedidos futuros dos clientes para esse serviço.
bypassProxyOnLocal Um valor booleano que indica se deve contornar o servidor proxy para endereços locais. A predefinição é false.

Um recurso da Internet é local se tiver um endereço local. Um endereço local é aquele que se encontra no mesmo computador, na LAN local ou intranet, e é identificado, sintaticamente, pela ausência de ponto (.) como nos URIs http://webserver/ e http://localhost/.

Definir este atributo determina se os endpoints configurados com o BasicHttpBinding utilizam o servidor proxy ao aceder a recursos locais. Se este atributo for true, os pedidos a recursos locais da Internet não utilizam o servidor proxy. Use o nome do host (em vez de localhost) se quiser que os clientes passem por um proxy ao falar com serviços na mesma máquina quando este atributo está definido para true.

Quando este atributo é false, todos os pedidos de Internet são feitos através do servidor proxy.
closeTimeout Um TimeSpan valor que especifica o intervalo de tempo fornecido para a conclusão de uma operação de fechamento. Este valor deve ser maior ou igual a Zero. O padrão é 00:01:00.
hostNameComparisonMode Especifica o modo de comparação de nomes de host HTTP usado para analisar URIs. Este atributo é do tipo HostNameComparisonMode, que indica se o nome de host é usado para aceder ao serviço quando corresponde no URI. O valor padrão é StrongWildcard, que ignora o nome do host na correspondência.
maxBufferPoolSize Um valor inteiro que especifica a quantidade máxima de memória alocada para uso pelo gestor dos buffers de mensagens que recebem mensagens do canal. O valor padrão é 524288 (0x80000) bytes.

O Gestor de Buffers minimiza o custo de utilização de buffers ao utilizar um pool de buffers. Os buffers são obrigados a processar mensagens pelo serviço quando saem do canal. Se não houver memória suficiente no pool de buffers para processar a carga da mensagem, o Gestor de Buffers deve alocar memória adicional do heap CLR, o que aumenta a sobrecarga de recolha de lixo. A alocação extensiva a partir do monte de lixo CLR indica que o tamanho do buffer pool é demasiado pequeno e que o desempenho pode ser melhorado com uma alocação maior aumentando o limite especificado por este atributo.
maxBufferSize Um valor inteiro que especifica o tamanho máximo, em bytes, de um buffer que armazena mensagens enquanto são processadas para um endpoint configurado com esta ligação. O valor padrão é 65.536 bytes.
maxReceivedMessageSize Um inteiro positivo que define o tamanho máximo da mensagem, em bytes, incluindo cabeçalhos, para uma mensagem que pode ser recebida num canal configurado com esta ligação. O emissor recebe uma falha SOAP se a mensagem for demasiado grande para o recetor. O recetor elimina a mensagem e cria uma entrada do evento no registo de rastreamento. O padrão é 65.536 bytes.
messageEncoding Define o codificador usado para codificar a mensagem SOAP. Os valores válidos incluem os seguintes:

- Texto: Use um codificador de mensagens de texto.
- Mtom: Utilizar um codificador Message Transmission Organization Mechanism 1.0 (MTOM).

O padrão é Text. Este atributo é do tipo WSMessageEncoding.
name Uma cadeia que contém o nome da configuração da ligação. Este valor deve ser único entre as ligações do mesmo tipo. A partir do .NET Framework 4, os bindings e comportamentos não são obrigatórios de ter um nome. Para mais informações sobre configuração padrão e ligações e comportamentos sem nome, consulte Configuração Simplificada e Configuração Simplificada para Serviços WCF.
openTimeout Um TimeSpan valor que especifica o intervalo de tempo previsto para que uma operação aberta seja concluída. Este valor deve ser maior ou igual a Zero. O padrão é 00:01:00.
proxyAddress Um URI que contém o endereço do proxy HTTP. Se useSystemWebProxy for definido como true, esta definição deve ser null. A predefinição é null.
receiveTimeout Um TimeSpan valor que especifica o intervalo de tempo fornecido para a conclusão de uma operação de receção. Este valor deve ser maior ou igual a Zero. O padrão é 00:10:00.
sendTimeout Um TimeSpan valor que especifica o intervalo de tempo fornecido para que uma operação de envio seja concluída. Este valor deve ser maior ou igual a Zero. O padrão é 00:01:00.
textEncoding Define a codificação do conjunto de caracteres para ser usada para emitir mensagens na ligação. Os valores válidos incluem os seguintes:

- BigEndianUnicode: Codificação Unicode BigEndian.
- Unicode: codificação de 16 bits.
- UTF8: codificação de 8 bits

O padrão é UTF8. Este atributo é do tipo Encoding.
transferMode Um valor válido TransferMode que especifica se as mensagens são armazenadas em buffer ou transmitidas num pedido ou resposta.
useDefaultWebProxy Um valor booleano que especifica se o proxy HTTP auto-configurado do sistema deve ser utilizado, se disponível. A predefinição é true.

Elementos filho

Elemento Description
<Segurança> Define as definições de segurança para a ligação. Este elemento é do tipo BasicHttpSecurityElement.
<LeitorQuotas> Define as restrições à complexidade das mensagens SOAP que podem ser processadas pelos endpoints configurados com esta ligação. Este elemento é do tipo XmlDictionaryReaderQuotasElement.

Elementos Principais

Elemento Description
<Encadernações> Este elemento contém uma coleção de encadernações padrão e personalizadas.

Observações

O BasicHttpBinding utiliza HTTP como transporte para enviar mensagens SOAP 1.1. Um serviço pode usar esta ligação para expor endpoints que cumprem WS-I BP 1.1, como os que os clientes ASMX consomem. De forma semelhante, um cliente pode usar o BasicHttpBinding para comunicar com serviços que expõem endpoints que cumprem WS-I BP 1.1, como serviços Web ASMX ou serviços configurados com o BasicHttpBinding.

A segurança está desligada por defeito, mas pode ser adicionada definindo o atributo de modo do <elemento filho de segurança> para um valor diferente de None. Utiliza por defeito uma codificação de mensagem "Text" e codificação de texto UTF-8.

Exemplo 1

O exemplo seguinte demonstra a utilização de BasicHttpBinding que proporciona comunicação HTTP e máxima interoperabilidade com serviços Web de primeira e segunda geração. A ligação é especificada nos ficheiros de configuração do cliente e do serviço. O tipo de ligação é especificado usando o binding atributo do <endpoint> elemento. Se quiseres configurar a binding básica e alterar algumas das suas definições, é necessário definir uma configuração de binding. O endpoint deve referenciar a configuração de ligação pelo nome, usando o bindingConfiguration atributo do <endpoint> elemento, conforme mostrado no seguinte código de configuração para o serviço.

<system.serviceModel>
  <services>
    <service type="Microsoft.ServiceModel.Samples.CalculatorService"
             behaviorConfiguration="CalculatorServiceBehavior">
      <endpoint address=""
                binding="basicHttpBinding"
                bindingConfiguration="Binding1"
                contract="Microsoft.ServiceModel.Samples.ICalculator" />
    </service>
  </services>
  <bindings>
    <basicHttpBinding>
      <binding name="Binding1"
               hostNameComparisonMode="StrongWildcard"
               receiveTimeout="00:10:00"
               sendTimeout="00:10:00"
               openTimeout="00:10:00"
               closeTimeout="00:10:00"
               maxReceivedMessageSize="65536"
               maxBufferSize="65536"
               maxBufferPoolSize="524288"
               transferMode="Buffered"
               messageEncoding="Text"
               textEncoding="utf-8"
               bypassProxyOnLocal="false"
               useDefaultWebProxy="true">
        <security mode="None" />
      </binding>
    </basicHttpBinding>
  </bindings>
</system.serviceModel>

Exemplo 2

A partir do .NET Framework 4, os bindings e comportamentos não são obrigatórios de ter um nome. A funcionalidade do exemplo anterior pode ser realizada removendo o bindingConfiguration do endereço do endpoint e o nome do binding.

<system.serviceModel>
  <services>
    <service type="Microsoft.ServiceModel.Samples.CalculatorService"
             behaviorConfiguration="CalculatorServiceBehavior">
      <endpoint address=""
                binding="basicHttpBinding"
                contract="Microsoft.ServiceModel.Samples.ICalculator" />
    </service>
  </services>
  <bindings>
    <basicHttpBinding>
      <binding hostNameComparisonMode="StrongWildcard"
               receiveTimeout="00:10:00"
               sendTimeout="00:10:00"
               openTimeout="00:10:00"
               closeTimeout="00:10:00"
               maxReceivedMessageSize="65536"
               maxBufferSize="65536"
               maxBufferPoolSize="524288"
               transferMode="Buffered"
               messageEncoding="Text"
               textEncoding="utf-8"
               bypassProxyOnLocal="false"
               useDefaultWebProxy="true">
        <security mode="None" />
      </binding>
    </basicHttpBinding>
  </bindings>
</system.serviceModel>

Para mais informações sobre configuração padrão e ligações e comportamentos sem nome, consulte Configuração Simplificada e Configuração Simplificada para Serviços WCF.

Consulte também