Partilhar via


<netMsmqBinding>

Define um enlace em fila adequado para comunicação entre máquinas.

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

Sintaxe

<netMsmqBinding>
  <binding closeTimeout="TimeSpan"
           customDeadLetterQueue="Uri"
           deadLetterQueue="Uri"
           durable="Boolean"
           exactlyOnce="Boolean"
           maxBufferPoolSize="Integer"
           maxReceivedMessageSize="Integer"
           maxRetryCycles="Integer"
           name="String"
           openTimeout="TimeSpan"
           poisonMessageHandling="Disabled/EnabledIfSupported"
           queueTransferProtocol="Native/Srmp/SrmpSecure"
           receiveErrorHandling="Drop/Fault/Move/Reject"
           receiveTimeout="TimeSpan"
           receiveRetryCount="Integer"
           rejectAfterLastRetry="Boolean"
           retryCycleDelay="TimeSpan"
           sendTimeout="TimeSpan"
           timeToLive="TimeSpan"
           useActiveDirectory="Boolean"
           useMsmqTracing="Boolean"
           useSourceJournal="Boolean">
    <security>
      <message algorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
               clientCredentialType="None/Windows/UserName/Certificate/InfoCard" />
      <transport msmqAuthenticationMode="None/WindowsDomain/Certificate"
                 msmqEncryptionAlgorithm="RC4Stream/AES"
                 msmqProtectionLevel="None/Sign/EncryptAndSign"
                 msmqSecureHashAlgorithm="MD5/SHA1/SHA256/SHA512" />
    </security>
    <readerQuotas maxArrayLength="Integer"
                  maxBytesPerRead="Integer"
                  maxDepth="Integer"
                  maxNameTableCharCount="Integer"
                  maxStringContentLength="Integer" />
  </binding>
</netMsmqBinding>

Atributos e Elementos

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

Atributos

Atributo Descrição
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.
customDeadLetterQueue Um URI que contém a localização da fila de letras por aplicação não entregue, onde são colocadas mensagens que expiraram ou que falharam na transferência ou entrega.

A fila de letras não entregues é uma fila no gestor de filas da aplicação de envio para mensagens expiradas que não foram entregues.

O URI especificado pelo CustomDeadLetterQueue tem de utilizar o esquema net.msmq.
deadLetterQueue Um DeadLetterQueue valor que especifica o tipo de fila de letras não entregues a utilizar, se existir.

Uma fila de letras não entregues é o local onde as mensagens que não foram entregues na aplicação serão transferidas.

Para mensagens que requerem exactlyOnce garantia (ou seja, o exactlyOnce atributo está definido como true), este atributo é predefinido para a fila de letras não entregues transacional em todo o sistema no MSMQ.

Para mensagens que não requerem garantias, este atributo é predefinido para null.
durable Um valor booleano que indica se a mensagem é durável ou volátil na fila. Uma mensagem durável sobrevive a uma falha do gestor de filas, enquanto uma mensagem volátil não. As mensagens voláteis são úteis quando as aplicações necessitam de menor latência e podem tolerar mensagens perdidas ocasionais. Se o exactlyOnce atributo estiver definido como true, as mensagens têm de ser duráveis. A predefinição é true.
exactlyOnce Um valor booleano que indica se cada mensagem processada por este enlace é entregue apenas uma vez. Em seguida, o remetente será notificado das falhas de entrega. Quando durable é false, este atributo é ignorado e as mensagens são transferidas sem garantia de entrega. A predefinição é true. Para obter mais informações, consulte ExactlyOnce.
maxBufferPoolSize Um número inteiro que especifica o tamanho máximo do conjunto de memória intermédia para este enlace. A predefinição é 8.
maxReceivedMessageSize Um número inteiro positivo que define o tamanho máximo da mensagem, em bytes, incluindo cabeçalhos, que é processado por 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. Isto vinculado ao tamanho da mensagem destina-se a limitar a exposição a ataques Denial of Service (DoS).
maxRetryCycles Um número inteiro que indica o número de ciclos de repetição utilizados pela funcionalidade de deteção de mensagens venenosas. Uma mensagem torna-se uma mensagem de veneno quando falha em todas as tentativas de entrega de todos os ciclos. A predefinição é 3. Para obter mais informações, consulte MaxRetryCycles.
name Atributo obrigatório. 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.
QueueTransferProtocol Um valor válido QueueTransferProtocol que especifica o transporte do canal de comunicação em fila que este enlace utiliza. O MSMQ não suporta o endereçamento do Active Directory ao utilizar o PROTOCOLO SOAP Reliable Messaging. Por conseguinte, não deve definir este atributo como Srmp ou Srmps quando o useActiveDirectory atributo está definido como true.
receiveErrorHandling Um ReceiveErrorHandling valor que especifica a forma como as mensagens venenosas e não passíveis de correspondência são processadas.
receiveRetryCount Um número inteiro que especifica o número máximo de vezes que o gestor de filas deve tentar enviar uma mensagem antes de a transferir para a fila de repetição.
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:10:00.
retryCycleDelay Um valor TimeSpan que especifica o atraso de tempo entre ciclos de repetição ao tentar entregar uma mensagem que não pôde ser entregue imediatamente. O valor define apenas o tempo mínimo de espera porque o tempo de espera real pode ser maior. O valor predefinido é 00:10:00. Para obter mais informações, consulte RetryCycleDelay.
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.
timeToLive Um valor TimeSpan que especifica quanto tempo as mensagens são válidas antes de expirarem e colocadas na fila de letras não entregues. A predefinição é 1.00:00:00.

Este atributo está definido para garantir que as mensagens sensíveis ao tempo não ficam obsoletas antes de serem processadas pelas aplicações que recebem. Uma mensagem numa fila que não é consumida pela aplicação de receção dentro do intervalo de tempo especificado diz-se que expirou. As mensagens expiradas são enviadas para uma fila especial denominada fila de letras não entregues. A localização da fila de letras inativas é definida com o DeadLetterQueue atributo ou com a predefinição adequada, com base em garantias.
usingActiveDirectory Um valor booleano que especifica se os endereços de fila devem ser convertidos com o Active Directory.

Os endereços de fila MSMQ podem consistir em nomes de caminho ou nomes de formato direto. Com um nome de formato direto, o MSMQ resolve o nome do computador com DNS, NetBIOS ou IP. Com um nome de caminho, o MSMQ resolve o nome do computador com o Active Directory.

Por predefinição, o transporte em fila do Windows Communication Foundation (WCF) converte o URI de uma fila de mensagens num nome de formato direto. Ao definir a UseActiveDirectory propriedade como verdadeira, uma aplicação pode especificar que o transporte em fila deve resolver o nome do computador com o Active Directory em vez de DNS, NetBIOS ou IP.
useMsmqTracing Um valor booleano que especifica se as mensagens processadas por este enlace devem ser rastreadas. A predefinição é false. Quando o rastreio está ativado, as mensagens de relatório são criadas e enviadas para a fila do relatório sempre que a mensagem sai ou chega a um computador em fila de mensagens.
useSourceJournal Um valor booleano que especifica cópias de mensagens processadas por este enlace deve ser armazenado no diário de origem. A predefinição é false.

As aplicações em fila que pretendam manter um registo de mensagens que saíram da fila de envio do computador podem copiar as mensagens para uma fila de diários. Assim que uma mensagem sai da fila de envio e é recebida uma confirmação de que a mensagem foi recebida no computador de destino, é mantida uma cópia da mensagem na fila do diário do sistema do computador.

Elementos Subordinados

Elemento Descrição
<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.
<segurança> Define as definições de segurança do enlace. Este elemento é do tipo NetMsmqSecurityElement.

Elementos Principais

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

Observações

O netMsmqBinding enlace fornece suporte para a colocação em fila ao tirar partido da Colocação de Mensagens da Microsoft em Fila (MSMQ) como um transporte e permite suporte para aplicações relativamente conjugadas, isolamento de falhas, redistribuição de carga e operações desligadas. Para um debate sobre estas funcionalidades, veja Filas no WCF.

Exemplo

<configuration>
  <system.ServiceModel>
    <bindings>
      <netMsmqBinding>
        <binding closeTimeout="00:00:10"
                 openTimeout="00:00:20"
                 receiveTimeout="00:00:30"
                 sendTimeout="00:00:40"
                 deadLetterQueue="net.msmq://localhost/blah"
                 durable="true"
                 exactlyOnce="true"
                 maxReceivedMessageSize="1000"
                 maxRetries="11"
                 maxRetryCycles="12"
                 poisonMessageHandling="Disabled"
                 rejectAfterLastRetry="false"
                 retryCycleDelay="00:05:55"
                 timeToLive="00:11:11"
                 sourceJournal="true"
                 useMsmqTracing="true"
                 useActiveDirectory="true">
          <security>
            <message clientCredentialType="Windows" />
          </security>
        </binding>
      </netMsmqBinding>
    </bindings>
  </system.ServiceModel>
</configuration>

Veja também