<wsDualHttpBinding>

Define um enlace seguro, fiável e interoperável adequado para contratos de serviço duplex ou comunicação através de intermediários SOAP.

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

Sintaxe

<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 secções seguintes descrevem atributos, elementos subordinados e elementos principais

Atributos

Atributo Descrição
bypassProxyOnLocal Um valor booleano que indica se deve ignorar o servidor proxy para endereços locais. A predefinição é false.
clientBaseAddress Um URI que define o endereço base que o cliente escuta para obter mensagens de resposta do serviço. Se especificado, este endereço (além de umGUID por canal) é utilizado para escutar. Se o valor não for especificado, o endereço base do cliente é gerado de forma específica do transporte. A predefinição é null.
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 useDefaultWebProxy 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 Define a codificação do conjunto de carateres a utilizar para emitir mensagens no enlace. Os valores válidos incluem o seguinte:

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

A predefinição é UTF8. 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 indica se o proxy HTTP configurado automaticamente do sistema é utilizado. O endereço proxy tem de ser null (ou seja, não definido) se este atributo for true. A predefinição é true.

Elementos Subordinados

Elemento Descrição
<segurança> Define as definições de segurança do enlace. Este elemento é do tipo WSDualHttpSecurityElement.
<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 WSDualHttpBinding fornece o mesmo suporte para protocolos do Serviço Web que o WSHttpBinding, mas para utilização com contratos duplex. WSDualHttpBinding apenas suporta a segurança SOAP e requer mensagens fiáveis. Este enlace requer que o cliente tenha um URI público que forneça um ponto final de chamada de retorno para o serviço. Isto é fornecido pelo clientBaseAddress atributo . Um enlace duplo expõe o endereço IP do cliente ao serviço. O cliente deve utilizar a segurança para garantir que apenas se liga aos serviços em que confia.

Este enlace pode ser utilizado para comunicar de forma fiável através de um ou mais intermediários SOAP.

Por predefinição, este enlace gera uma pilha de runtime com WS-ReliableMessaging para fiabilidade, WS-Security para segurança e autenticação de mensagens, HTTP para entrega de mensagens e codificação de mensagens 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>

Veja também