<wsHttpBinding>

Define uma associação segura, confiável e interoperável que é adequada para contratos de serviço não duplex. A associação implementa as seguintes especificações: Mensagens WS-Reliable para confiabilidade e WS-Security para segurança e autenticação de mensagens. O transporte é HTTP e a codificação de mensagem é a codificação de Texto/XML.

<configuration>
  <system.serviceModel>
    <bindings>
      <wsHttpBinding>

Syntax

<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 seções a seguir descrevem os atributos, os elementos filho e os elementos pai

Atributos

Atributo Descrição
allowCookies Um valor booliano que indica se o cliente aceita cookies e os propaga em solicitações futuras. O padrão é falso.

Você pode usar essa propriedade ao interagir com os serviços Web ASMX que usam cookies. Dessa forma, você pode ter certeza de que os cookies retornados do servidor são copiados automaticamente para todas as solicitações futuras do cliente para esse serviço.
bypassProxyOnLocal Um valor booliano que indica se o servidor proxy deve ser ignorado para endereços locais. O padrão é false.
closeTimeout Um valor TimeSpan que especifica o intervalo de tempo para a conclusão de uma operação de fechamento. Esse valor deve ser igual ou superior a Zero. O padrão é 00:01:00.
hostnameComparisonMode Especifica o modo de comparação de nome do host HTTP usado para analisar URIs. Esse atributo é do tipo HostNameComparisonMode, o que indica se o nome do host é usado para acessar o serviço ao fazer correspondência no URI. O valor padrão é StrongWildcard, o que ignora o nome do host na correspondência.
maxBufferPoolSize Um inteiro que especifica o tamanho máximo do pool de buffers para essa associação. O padrão é 524.288 bytes (512 * 1024). Muitas partes do WCF (Windows Communication Foundation) usam buffers. Criar e destruir buffers cada vez que eles são usados é caro, e a coleta de lixo para buffers também é cara. Com os pools de buffers, você pode pegar um buffer do pool, usá-lo e devolvê-lo ao pool assim que terminar. Portanto, a sobrecarga na criação e na destruição de buffers é evitada.
maxReceivedMessageSize Um inteiro positivo que especifica o tamanho máximo da mensagem, em bytes, incluindo cabeçalhos, que pode ser recebido em um canal configurado com essa associação. O remetente de uma mensagem que exceder esse limite receberá uma falha SOAP. O receptor remove a mensagem e cria uma entrada do evento no log de rastreamento. O padrão é 65536.
messageEncoding Define o codificador usado para codificar a mensagem. Os valores válidos incluem os seguintes:

– Texto: use um codificador de mensagens de texto.
− Mtom: usar um codificador MTOM (Message Transmission Organization Mechanism) 1.0.
− O padrão é texto.

Esse atributo é do tipo WSMessageEncoding.
name Uma cadeia de caracteres que contém o nome de configuração da associação. Esse valor deve ser exclusivo, pois é usado como uma identificação para a associação. A partir do .NET Framework 4, associações e comportamentos não precisam ter um nome. Para obter mais informações sobre a configuração padrão e as associações sem nome, incluindo os comportamentos, confira Configuração Simplificada e Configuração Simplificada para Serviços WCF.
openTimeout Um valor TimeSpan que especifica o intervalo de tempo fornecido para a conclusão de uma operação de abertura. Esse valor deve ser igual ou superior a Zero. O padrão é 00:01:00.
proxyAddress Um URI que especifica o endereço do proxy HTTP. Se useSystemWebProxy for true, essa configuração precisará ser null. O padrão é null.
receiveTimeout Um valor TimeSpan que especifica o intervalo de tempo para a conclusão de uma operação de recebimento. Esse valor deve ser igual ou superior a Zero. O padrão é 00:01:00.
sendTimeout Um valor TimeSpan que especifica o intervalo de tempo para a conclusão de uma operação de envio. Esse valor deve ser igual ou superior a Zero. O padrão é 00:01:00.
textEncoding Especifica a codificação do conjunto de caracteres a ser usada para emitir mensagens na associação. Os valores válidos incluem os seguintes:

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

O padrão é Utf8TextEncoding.

Esse atributo é do tipo Encoding.
transactionFlow Um valor booliano que especifica se a associação dá suporte ao fluxo de WS-Transactions. O padrão é false.
useDefaultWebProxy Um valor booliano que especifica se o proxy HTTP configurado automaticamente do sistema é usado. O padrão é true.

Elementos filho

Elemento Descrição
<security> Define as configurações de segurança da associação. Esse elemento é do tipo WSHttpSecurityElement.
<readerQuotas> Define as restrições sobre a complexidade das mensagens SOAP que podem ser processadas pelos pontos de extremidade configurados com essa associação. Esse elemento é do tipo XmlDictionaryReaderQuotasElement.
<reliableSession> Especifica se sessões as confiáveis são estabelecidas entre pontos de extremidade de canal.

Elementos pai

Elemento Descrição
<bindings> Esse elemento contém uma coleção de associações padrão e personalizadas.

Comentários

O WSHttpBinding é semelhante ao BasicHttpBinding, mas fornece mais recursos de serviço Web. Ele usa o transporte HTTP e fornece segurança de mensagem, assim como BasicHttpBinding, mas também fornece transações, mensagens confiáveis e WS-Addressing, habilitados por padrão ou disponíveis por meio de uma única configuração de controle.

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>

Confira também