Compartilhar via


<wsDualHttpBinding>

Define uma associação segura, confiável e interoperável que é adequada para contratos de serviços duplex ou para comunicação por intermediários SOAP.

<configuration>
  <system.serviceModel>
    <bindings>
      <wsDualHttpBinding>

Syntax

<wsDualHttpBinding>
  <binding name="String"
          closeTimeout="TimeSpan"
          openTimeout="TimeSpan"
          receiveTimeout="TimeSpan"
          sendTimeout="TimeSpan"
          bypassProxyOnLocal="Boolean"
          clientBaseAddress="URI"
          transactionFlow="Boolean"
          hostNameComparisonMode="StrongWildCard/Exact/WeakWildcard"
          maxBufferPoolSize="integer"
          maxReceivedMessageSize="Integer"
          messageEncoding="Text/Mtom"
          proxyAddress="URI"
          textEncoding="Unicode/BigEndianUnicode/UTF8"
          useDefaultWebProxy="Boolean">
    <reliableSession ordered="Boolean"
                     inactivityTimeout="TimeSpan" />
    <security mode="None/Message">
      <message clientCredentialType="None/Windows/UserName/Certificate/CardSpace"
               negotiateServiceCredential="Boolean"
               algorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15" />
    </security>
    <readerQuotas maxArrayLength="Integer"
                  maxBytesPerRead="Integer"
                  maxDepth="Integer"
                  maxNameTableCharCount="Integer"
                  maxStringContentLength="Integer" />
  </binding>
</wsDualHttpBinding>

Atributos e elementos

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

Atributos

Atributo Descrição
bypassProxyOnLocal Um valor booliano que indica se o servidor proxy deve ser ignorado para endereços locais. O padrão é false.
clientBaseAddress Um URI que especifica o endereço básico que o cliente escuta para mensagens de resposta do serviço. Se especificado, esse endereço (mais um per-channelGUID) será usado para escutar. Se o valor não for especificado, o endereço base do cliente será gerado de maneira específica do transporte. O padrão é null.
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 useDefaultWebProxy 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 Define a codificação de conjunto de caracteres a ser usada para emitir mensagens na associaçã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. 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 indica se o proxy HTTP configurado automaticamente do sistema é usado. O endereço proxy deve ser null (ou seja, não definido) se esse atributo for true. O padrão é true.

Elementos filho

Elemento Descrição
<security> Define as configurações de segurança da associação. Esse elemento é do tipo WSDualHttpSecurityElement.
<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 WSDualHttpBinding fornece o mesmo suporte para protocolos do Serviço Web que o WSHttpBinding, mas para uso com contratos duplex. WSDualHttpBinding só dá suporte à segurança SOAP e requer mensagens confiáveis. Essa associação exige que o cliente tenha um URI público que forneça um ponto de extremidade de retorno de chamada para o serviço. Isso é fornecido pelo atributo clientBaseAddress. Uma associação dupla expõe o endereço IP do cliente ao serviço. O cliente deve usar a segurança para garantir que ele se conecte apenas aos serviços em que confia.

Essa associação pode ser usada para se comunicar de forma confiável por meio de um ou mais intermediários SOAP.

Por padrão, essa associação gera uma pilha em tempo de execução com WS-ReliableMessaging para confiabilidade, WS-Security para segurança e autenticação de mensagens, HTTP para entrega de mensagens e uma codificação de mensagem de Texto/XML.

Exemplo

<configuration>
  <system.ServiceModel>
    <bindings>
      <wsDualHttpBinding>
        <binding closeTimeout="00:00:10"
                 openTimeout="00:00:20"
                 receiveTimeout="00:00:30"
                 sendTimeout="00:00:40"
                 bypassProxyOnLocal="false"
                 clientBaseAddress="http://localhost:8001/client/"
                 transactionFlow="true"
                 hostNameComparisonMode="WeakWildcard"
                 maxReceivedMessageSize="1000"
                 messageEncoding="Mtom"
                 proxyAddress="http://foo/bar"
                 textEncoding="utf-16"
                 useDefaultWebProxy="false">
          <reliableSession ordered="false"
                           inactivityTimeout="00:02:00" />
          <security mode="None">
            <message clientCredentialType="None"
                     negotiateServiceCredential="false"
                     algorithmSuite="Aes128" />
          </security>
        </binding>
      </wsDualHttpBinding>
    </bindings>
  </system.ServiceModel>
</configuration>

Confira também