Compartilhar via


<netMsmqBinding>

Define uma associação em fila e adequada para comunicação entre computadores.

<configuration>
  <system.serviceModel>
    <bindings>
      <netMsmqBinding>

Syntax

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

Atributos

Atributo Descrição
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.
customDeadLetterQueue Um URI que contém o local da fila de mensagens mortas por aplicativo, em que são colocadas as mensagens que expiraram ou tiveram uma falha de transferência ou de entrega.

A fila de mensagens mortas é uma fila no gerenciador de filas do aplicativo de envio para mensagens expiradas que não foram entregues.

O URI especificado por CustomDeadLetterQueue deve usar o esquema net.msmq.
deadLetterQueue Um valor DeadLetterQueue que especifica qual tipo de fila de mensagens mortas deve ser usado, se houver.

Uma fila de mensagens mortas é o local onde as mensagens que não foram entregues ao aplicativo serão transferidas.

Para mensagens que exigem exactlyOnce garantia (ou seja, o exactlyOnce atributo é definido como true), esse atributo é padrão para a fila de mensagens mortas transacionais em todo o sistema no MSMQ.

Para as mensagens que não exigem garantias, esse atributo usa null como padrão.
durable Um valor booliano que indica se a mensagem é durável ou volátil na fila. Uma mensagem durável sobrevive a uma falha do gerenciador de filas, ao contrário de uma mensagem volátil. As mensagens voláteis são úteis quando os aplicativos exigem latência mais baixa e podem tolerar mensagens perdidas ocasionais. Se o atributo exactlyOnce for definido como true, as mensagens devem ser duráveis. O padrão é true.
exactlyOnce Um valor booliano que indica se cada mensagem processada por essa associação é entregue apenas uma vez. O remetente será notificado sobre falhas de entrega. Quando durable é false, esse atributo é ignorado e as mensagens são transferidas sem garantia de entrega. O padrão é true. Para obter mais informações, consulte ExactlyOnce.
maxBufferPoolSize Um inteiro que especifica o tamanho máximo do pool de buffers para essa associação. O padrão é 8.
maxReceivedMessageSize Um inteiro positivo que define o tamanho máximo da mensagem, em bytes, incluindo os cabeçalhos, que é processado por 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. O limite no tamanho da mensagem serve para restringir a exposição para ataques de DoS (Negação de Serviço).
maxRetryCycles Um inteiro que indica o número de ciclos de repetição usados pelo recurso de detecção de mensagens suspeitas. Uma mensagem se torna suspeita quando falha em todas as tentativas de entrega de todos os ciclos. O padrão é 3. Para obter mais informações, consulte MaxRetryCycles.
name Atributo obrigatório. 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.
QueueTransferProtocol Um valor QueueTransferProtocol válido especifica o transporte de canal de comunicação em fila usado por essa associação. O MSMQ não dá suporte ao endereçamento do Active Directory ao usar o SOAP Reliable Messaging Protocol. Portanto, você não deve definir esse atributo como Srmp ou quando o Srmps atributo estiver definido como useActiveDirectorytrue.
receiveErrorHandling Um valor ReceiveErrorHandling que especifica como mensagens suspeitas e que não podem ser expedidas são tratadas.
receiveRetryCount Um inteiro que especifica o número máximo de vezes que o gerenciador de fila deve tentar enviar uma mensagem antes de transferi-la para a fila de novas tentativas.
receiveTimeout Um valor TimeSpan que especifica o intervalo de tempo fornecido para a conclusão de uma operação de recebimento. Esse valor deve ser igual ou superior a Zero. O padrão é 00:10:00.
retryCycleDelay Um valor TimeSpan que especifica o atraso de tempo entre os ciclos de repetição na tentativa de entrega de uma mensagem que não pôde ser entregue imediatamente. O valor define apenas o tempo mínimo de espera, pois o tempo de espera real pode ser maior. O valor padrão é 00:10:00. Para obter mais informações, consulte RetryCycleDelay.
sendTimeout Um valor TimeSpan que especifica o intervalo de tempo fornecido 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.
timeToLive Um valor TimeSpan que especifica por quanto tempo as mensagens são válidas antes de expirarem e serem colocadas na fila de mensagens mortas. O padrão é 1.00:00:00.

Esse atributo está definido para garantir que as mensagens sensíveis ao tempo não fiquem obsoletas antes de serem processadas pelos aplicativos de recebimento. Uma mensagem em uma fila que não é consumida pelo aplicativo de recebimento dentro do intervalo de tempo especificado é considerada vencida. As mensagens vencidas são enviadas para uma fila especial chamada fila de mensagens mortas. O local da fila de mensagens mortas é definido com o atributo DeadLetterQueue ou com o padrão apropriado, de acordo com as garantias.
usingActiveDirectory Um valor booliano que especifica se os endereços da fila devem ser convertidos usando o Active Directory.

Os endereços da 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 usando DNS, NetBIOS ou IP. Com um nome de caminho, o MSMQ resolve o nome do computador usando o Active Directory.

Por padrão, o transporte enfileirado do Windows Communication Foundation (WCF) converte o URI de uma fila de mensagens em um nome de formato direto. Ao definir a UseActiveDirectory propriedade como true, um aplicativo pode especificar que o transporte enfileirado deve resolver o nome do computador usando o Active Directory em vez de DNS, NetBIOS ou IP.
useMsmqTracing Um valor booliano que especifica se as mensagens processadas por essa associação devem ser rastreadas. O padrão é false. Quando o rastreamento está habilitado, as mensagens de relatório são criadas e enviadas para a fila de relatórios sempre que a mensagem sai ou chega em um computador do Enfileiramento de Mensagens.
useSourceJournal Um valor booliano que especifica se as cópias de mensagens processadas por essa associação devem ser armazenadas no diário de origem. O padrão é false.

Os aplicativos na fila que desejam manter um registro das mensagens que saíram da fila de saída do computador podem copiar as mensagens para uma fila de diários. Depois que uma mensagem sai da fila de saída e uma confirmação é recebida de que a mensagem foi recebida no computador de destino, uma cópia da mensagem é mantida na fila de diários do sistema de envio.

Elementos filho

Elemento Descrição
<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.
<security> Define as configurações de segurança da associação. Esse elemento é do tipo NetMsmqSecurityElement.

Elementos pai

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

Comentários

A netMsmqBinding associação fornece suporte para enfileiramento aproveitando o MSMQ (Enfileiramento de Mensagens da Microsoft) como um transporte e habilita o suporte para aplicativos acoplados vagamente, isolamento de falha, nivelamento de carga e operações desconectadas. Para obter uma discussão sobre esses recursos, consulte 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>

Confira também