Partilhar via


<wsHttpBinding>

Define um enlace seguro, fiável e interoperável adequado para contratos de serviço não duplex. O enlace implementa as seguintes especificações: WS-Reliable Mensagens para fiabilidade e WS-Security para segurança e autenticação de mensagens. O transporte é HTTP e a codificação de mensagens é codificação de Texto/XML.

<configuração>
  <system.serviceModel>
    <enlaces>
      <wsHttpBinding>

Sintaxe

<wsHttpBinding>
  <binding allowCookies="Boolean"
           bypassProxyOnLocal="Boolean"
           closeTimeout="TimeSpan"
           hostNameComparisonMode="StrongWildCard/Exact/WeakWildcard"
           maxBufferPoolSize="integer"
           maxReceivedMessageSize="Integer"
           messageEncoding="Text/Mtom"
           name="string"
           openTimeout="TimeSpan"
           proxyAddress="URI"
           receiveTimeout="TimeSpan"
           sendTimeout="TimeSpan"
           textEncoding="UnicodeFffeTextEncoding/Utf16TextEncoding/Utf8TextEncoding"
           transactionFlow="Boolean"
           useDefaultWebProxy="Boolean">
    <reliableSession ordered="Boolean"
                     inactivityTimeout="TimeSpan"
                     enabled="Boolean" />
    <security mode="Message/None/Transport/TransportWithCredential">
      <transport clientCredentialType="Basic/Certificate/Digest/None/Ntlm/Windows"
                 proxyCredentialType="Basic/Digest/None/Ntlm/Windows"
                 realm="string" />
      <message algorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
               clientCredentialType="Certificate/IssuedToken/None/UserName/Windows"
               establishSecurityContext="Boolean"
               negotiateServiceCredential="Boolean" />
    </security>
    <readerQuotas maxArrayLength="Integer"
                  maxBytesPerRead="Integer"
                  maxDepth="Integer"
                  maxNameTableCharCount="Integer"
                  maxStringContentLength="Integer" />
  </binding>
</wsHttpBinding>

Atributos e Elementos

As secções seguintes descrevem atributos, elementos subordinados e elementos principais

Atributos

Atributo Descrição
allowCookies Um valor booleano que indica se o cliente aceita cookies e os propaga em pedidos futuros. A predefinição é falsa.

Pode utilizar esta propriedade quando interage com serviços Web ASMX que utilizam cookies. Desta forma, pode certificar-se de que os cookies devolvidos a partir do servidor são automaticamente copiados para todos os futuros pedidos de cliente para esse serviço.
bypassProxyOnLocal Um valor booleano que indica se deve ignorar o servidor proxy para endereços locais. A predefinição é false.
closeTimeout Um TimeSpan valor que especifica o intervalo de tempo fornecido para a conclusão de uma operação próxima. Este valor deve ser maior ou igual a Zero. A predefinição é 00:01:00.
hostnameComparisonMode Especifica o modo de comparação de nome de anfitrião HTTP utilizado para analisar URIs. Este atributo é do tipo HostNameComparisonMode, que indica se o nome do anfitrião é utilizado para aceder ao serviço quando corresponde ao URI. O valor predefinido é StrongWildcard, que ignora o nome do anfitrião na correspondência.
maxBufferPoolSize Um número inteiro que especifica o tamanho máximo do conjunto de memória intermédia para este enlace. A predefinição é 524.288 bytes (512 * 1024). Muitas partes do Windows Communication Foundation (WCF) utilizam memórias intermédias. A criação e destruição de memórias intermédias sempre que são utilizadas é dispendiosa e a recolha de lixo para memória intermédia também é dispendiosa. Com os conjuntos de memória intermédia, pode tirar uma memória intermédia do conjunto, utilizá-la e devolvê-la ao conjunto assim que terminar. Assim, evita-se a sobrecarga na criação e destruição de memórias intermédias.
maxReceivedMessageSize Um número inteiro positivo que especifica o tamanho máximo da mensagem, em bytes, incluindo cabeçalhos, que podem ser recebidos num canal configurado com este enlace. O remetente de uma mensagem que exceda este limite receberá uma falha SOAP. O recetor remove a mensagem e cria uma entrada do evento no registo de rastreio. A predefinição é 65536.
messageEncoding Define o codificador utilizado para codificar a mensagem. Os valores válidos incluem o seguinte:

- Texto: utilize um codificador de mensagens de texto.
- Mtom: utilize um codificador MTOM (Message Transmission Organization Mechanism 1.0).
- A predefinição é Texto.

Este atributo é do tipo WSMessageEncoding.
name Uma cadeia que contém o nome de configuração do enlace. Este valor deve ser exclusivo porque é utilizado como uma identificação para o enlace. A partir do .NET Framework 4, não são necessários enlaces e comportamentos para ter um nome. Para obter mais informações sobre a configuração predefinida e os enlaces e comportamentos sem nome, veja Configuração Simplificada e Configuração Simplificada para os Serviços WCF.
openTimeout Um TimeSpan valor que especifica o intervalo de tempo fornecido para a conclusão de uma operação aberta. Este valor deve ser maior ou igual a Zero. A predefinição é 00:01:00.
proxyAddress Um URI que especifica o endereço do proxy HTTP. Se useSystemWebProxy for true, esta definição tem de 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. A predefinição é 00:01:00.
sendTimeout Um TimeSpan valor que especifica o intervalo de tempo fornecido para a conclusão de uma operação de envio. Este valor deve ser maior ou igual a Zero. A predefinição é 00:01:00.
textEncoding Especifica a codificação do conjunto de carateres a utilizar para emitir mensagens no enlace. Os valores válidos incluem o seguinte:

- UnicodeFffeTextEncoding: codificação Unicode BigEndian.
- Utf16TextEncoding: codificação de 16 bits.
- Utf8TextEncoding: codificação de 8 bits.

A predefinição é Utf8TextEncoding.

Este atributo é do tipo Encoding.
fluxo de transações Um valor booleano que especifica se o enlace suporta WS-Transactions fluídos. A predefinição é false.
useDefaultWebProxy Um valor booleano que especifica se o proxy HTTP configurado automaticamente do sistema é utilizado. A predefinição é true.

Elementos Subordinados

Elemento Descrição
<segurança> Define as definições de segurança do enlace. Este elemento é do tipo WSHttpSecurityElement.
<readerQuotas> Define as restrições sobre a complexidade das mensagens SOAP que podem ser processadas por pontos finais configurados com este enlace. Este elemento é do tipo XmlDictionaryReaderQuotasElement.
<reliableSession> Especifica se são estabelecidas sessões fiáveis entre pontos finais de canal.

Elementos Principais

Elemento Descrição
<enlaces> Este elemento contém uma coleção de enlaces padrão e personalizados.

Observações

O WSHttpBinding é semelhante ao BasicHttpBinding , mas fornece mais funcionalidades de serviço Web. Utiliza o transporte HTTP e fornece segurança de mensagens, tal como o BasicHttpBinding, mas também fornece transações, mensagens fiáveis e WS-Addressing, ativadas por predefinição ou disponíveis através de uma única definição de controlo.

Exemplo

<configuration>
  <system.ServiceModel>
    <bindings>
      <wsHttpBinding>
        <binding closeTimeout="00:00:10"
                 openTimeout="00:00:20"
                 receiveTimeout="00:00:30"
                 sendTimeout="00:00:40"
                 bypassProxyOnLocal="false"
                 transactionFlow="false"
                 hostNameComparisonMode="WeakWildcard"
                 maxReceivedMessageSize="1000"
                 messageEncoding="Mtom"
                 proxyAddress="http://foo/bar"
                 textEncoding="utf-16"
                 useDefaultWebProxy="false">
          <reliableSession ordered="false"
                           inactivityTimeout="00:02:00"
                           enabled="true" />
          <security mode="Transport">
            <transport clientCredentialType="Digest"
                       proxyCredentialType="None"
                       realm="someRealm" />
            <message clientCredentialType="Windows"
                     negotiateServiceCredential="false"
                     algorithmSuite="Aes128"
                     defaultProtectionLevel="None" />
          </security>
        </binding>
      </wsHttpBinding>
    </bindings>
  </system.ServiceModel>
</configuration>

Veja também