Compartilhar via


<Msmqintegrationbinding>

Define uma associação que fornece suporte à fila roteando mensagens por meio do MSMQ.

<configuração>
   <system.serviceModel>
     <Ligações>
       <Custombinding>
         <ligação>
           <Msmqintegrationbinding>

Sintaxe

<msmqIntegrationBinding>
  <binding closeTimeout="TimeSpan"
           customDeadLetterQueue="Uri"
           deadLetterQueue="Uri"
           durable="Boolean"
           exactlyOnce="Boolean"
           maxReceivedMessageSize="Integer"
           maxRetryCycles="Integer"
           name="String"
           openTimeout="TimeSpan"
           receiveContextEnabled="Boolean"
           receiveErrorHandling="Drop/Fault/Move/Reject"
           receiveTimeout="TimeSpan"
           receiveRetryCount="Integer"
           retryCycleDelay="TimeSpan"
           sendTimeout="TimeSpan"
           serializationFormat="XML/Binary/ActiveX/ByteArray/Stream"
           timeToLive="TimeSpan"
           useMsmqTracing="Boolean"
           useSourceJournal="Boolean">
  </binding>
</msmqIntegrationBinding>

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.value que especifica qual tipo de fila de mensagens mortas usar, se houver

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

Para mensagens que exigem a garantia exactlyOnce (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.
Durável 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 é 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.
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 é 2. Para obter mais informações, consulte MaxRetryCycles.
nome 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.
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 repetições imediatas que o gerenciador de filas deve tentar se a transmissão de uma mensagem da fila do aplicativo para o aplicativo falhar.

Se o número máximo de tentativas de entrega for atingido e a mensagem não for acessada pelo aplicativo, a mensagem será enviada para uma fila de repetição para resgate posteriormente. A quantidade de tempo antes de a mensagem ser transferida de volta para a fila de envio é controlada por retryCycleDelay. Se os ciclos de repetição atingirem o maxRetryCycles valor, a mensagem será enviada para a fila de mensagens suspeitas ou uma confirmação negativa será enviada de volta ao remetente.
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.
receiveContextEnabled Um booliano que especifica se o contexto de recebimento para processamento de mensagens em filas está habilitado. Quando isso é definido como true, um serviço pode "espiar" uma mensagem na fila para começar a processá-la e, se algo der errado e uma exceção for lançada, ela permanecerá na fila. Os serviços também podem "bloquear" mensagens para tentar novamente o processamento em um momento posterior. ReceiveContext fornece um mecanismo para "concluir" a mensagem uma vez processada para que ela possa ser removida da fila. As mensagens não estão mais sendo lidas e recriadas em filas pela rede e as mensagens individuais não estão sendo enviadas em diferentes instâncias de serviço durante o processamento.
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:30: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.
serializationFormat Define o formato usado para serialização do corpo da mensagem. Esse atributo é do tipo MsmqMessageSerializationFormat.
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.
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.

{serializationFormat} Atributo

Value Description
XML Formato XML
Binary Formato binário
ActiveX Formato ActiveX
Bytearray Serializa o objeto para uma matriz de bytes.
Stream O corpo formatado como um fluxo

Elementos filho

Elemento Description
<segurança> Define as configurações de segurança para a associação. Esse elemento é do tipo MsmqIntegrationSecurityElement.

Elementos pai

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

Observações

Esse elemento de associação pode ser usado para habilitar aplicativos WCF (Windows Communication Foundation) para enviar mensagens e receber mensagens de aplicativos MSMQ existentes que usam COM, APIs nativas do MSMQ ou os tipos definidos no System.Messaging namespace Você pode usar esse elemento de configuração para especificar maneiras de lidar com a fila, transferir garantias, se as mensagens devem ser armazenadas de forma durável, e como as mensagens devem ser protegidas e autenticadas. Para obter mais informações, consulte Como trocar mensagens com pontos de extremidade WCF e aplicativos de enfileiramento de mensagens.

Example

<configuration>
  <system.ServiceModel>
    <bindings>
      <msmqIntegrationBinding>
        <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"
                 maxImmediateRetries="11"
                 maxRetryCycles="12"
                 poisonMessageHandling="Disabled"
                 rejectAfterLastRetry="false"
                 retryCycleDelay="00:05:55"
                 timeToLive="00:11:11"
                 useSourceJournal="true"
                 useMsmqTracing="true"
                 serializationFormat="Binary">
          <security mode="None" />
        </binding>
      </msmqIntegrationBinding>
    </bindings>
  </system.ServiceModel>
</configuration>

Consulte também