Compartilhar via


<Netmsmqbinding>

Define uma associação na fila adequada para comunicação entre máquinas.

<configuração>
   <system.serviceModel>
     <Ligações>
       <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 seções a seguir descrevem atributos, elementos filho e elementos pai.

Attributes

Attribute Description
closeTimeout Um TimeSpan valor que especifica o intervalo de tempo fornecido para que uma operação de fechamento seja concluída. Esse valor deve ser maior ou igual 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 as mensagens que expiraram ou que falharam na transferência ou entrega são colocadas.

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 deve CustomDeadLetterQueue usar o esquema net.msmq.
deadLetterQueue Um DeadLetterQueue valor que especifica qual tipo de fila de mensagens mortas usar, 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 usa como padrão a fila de mensagens mortas transacionais em todo o sistema no MSMQ.

Para mensagens que não exigem garantias, esse atributo usa como padrão null.
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, enquanto uma mensagem volátil não. Mensagens voláteis são úteis quando os aplicativos exigem latência mais baixa e podem tolerar mensagens perdidas ocasionais. Se o exactlyOnce atributo for definido como true, as mensagens deverão 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. Em seguida, 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 cabeçalhos, que é processado por essa associação. O remetente de uma mensagem que excede esse limite receberá uma falha SOAP. O receptor descarta a mensagem e cria uma entrada do evento no log de rastreamento. O padrão é 65536. Esse limite no tamanho da mensagem destina-se a limitar a exposição a 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 venenosas. Uma mensagem se torna uma mensagem venenosa 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 necessário. Uma cadeia de caracteres que contém o nome de configuração da associação. Esse valor deve ser exclusivo porque é usado como uma identificação para a associação. A partir do .NET Framework 4, associações e comportamentos não são necessários para ter um nome. Para obter mais informações sobre configuração padrão e associações e comportamentos sem nome, consulte Configuração simplificada e configuração simplificada para serviços WCF.
openTimeout Um TimeSpan valor que especifica o intervalo de tempo fornecido para uma operação aberta ser concluída. Esse valor deve ser maior ou igual a Zero. O padrão é 00:01:00.
QueueTransferProtocol Um valor válido QueueTransferProtocol que especifica o transporte de canal de comunicação enfileirado que essa associação usa. 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 é definido como useActiveDirectorytrue .
receiveErrorHandling Um ReceiveErrorHandling valor que especifica como mensagens venenosas e não compatíveis são tratadas.
receiveRetryCount Um inteiro que especifica o número máximo de vezes que o gerenciador de filas deve tentar enviar uma mensagem antes de transferi-la 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 recebimento. Esse valor deve ser maior ou igual a Zero. O padrão é 00:10:00.
retryCycleDelay Um valor TimeSpan que especifica o atraso de tempo entre os 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 padrão é 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. Esse valor deve ser maior ou igual a Zero. O padrã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 mensagens mortas. O padrão é 1.00:00:00.

Esse atributo é definido para garantir que as mensagens sensíveis ao tempo não fiquem obsoletas antes de serem processadas pelos aplicativos receptores. Uma mensagem em uma fila que não é consumida pelo aplicativo receptor dentro do intervalo de tempo especificado é considerada expirada. Mensagens expiradas são enviadas para uma fila especial chamada fila de mensagens mortas. O local da fila de letras mortas é definido com o DeadLetterQueue atributo ou com o padrão apropriado, com base em garantias.
usingActiveDirectory Um valor booliano que especifica se os endereços de fila devem ser convertidos usando 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 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 em fila 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 é habilitado, as mensagens de relatório são criadas e enviadas para a fila de relatório sempre que a mensagem sai ou chega a um computador de Enfileiramento de Mensagens.
useSourceJournal Um valor booliano que especifica cópias de mensagens processadas por essa associação deve ser armazenado no diário de origem. O padrão é false.

Aplicativos enfileirados que desejam manter um registro de mensagens que deixaram a 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 Description
<Readerquotas> Define as restrições sobre a complexidade das mensagens SOAP que podem ser processadas por pontos de extremidade configurados com essa associação. Esse elemento é do tipo XmlDictionaryReaderQuotasElement.
<segurança> Define as configurações de segurança para a associação. Esse elemento é do tipo NetMsmqSecurityElement.

Elementos pai

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

Observações

A netMsmqBinding associação fornece suporte para enfileiramento aproveitando o MSMQ (Enfileiramento de Mensagens da Microsoft) como transporte e permite 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.

Example

<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>

Consulte também