Partilhar via


<msmqIntegrationBinding>

Define uma ligação que fornece suporte para filas através do encaminhamento de mensagens através do MSMQ.

<configuração>
   <system.serviceModel>
     <Encadernações>
       <customBinding>
         <Encadernaçã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 a conclusão de uma operação de fechamento. Este valor deve ser maior ou igual a Zero. O padrão é 00:01:00.
customDeadLetterQueue Um URI que contém a localização da fila de cartas mortas por aplicação, onde são colocadas mensagens que expiraram ou que falharam a transferência ou entrega.

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

O URI especificado por CustomDeadLetterQueue deve usar o esquema net.msmq.
deadLetterQueue Um DeadLetterQueue.value que especifica que tipo de fila de letras mortas usar, se existe alguma

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

Para mensagens que requerem a garantia exatamenteOnce (ou seja, o exactlyOnce atributo é definido para true), este atributo corresponde por defeito à fila transacional de dead-letter a nível do sistema no MSMQ.

Para mensagens que não requerem garantias, este atributo é por defeito .null
durável Um valor booleano que indica se a mensagem é durável ou volátil na fila. Uma mensagem duradoura sobrevive a um crash do gestor de filas, enquanto uma mensagem volátil não. Mensagens voláteis são úteis quando as aplicações requerem menor latência e podem tolerar mensagens perdidas ocasionais. Se o exactlyOnce atributo estiver definido para true, as mensagens devem ser duradouras. A predefinição é true.
exatamenteUma vez Um valor booleano que indica se cada mensagem é entregue apenas uma vez. O remetente será então notificado de falhas na 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.
maxReceivedMessageSize Um inteiro positivo que define o tamanho máximo da mensagem, em bytes, incluindo cabeçalhos, que é processado por esta ligação. O remetente de uma mensagem que ultrapasse este limite receberá uma falha SOAP. O recetor elimina a mensagem e cria uma entrada do evento no registo de rastreamento. O padrão é 65536. Esta limitação no tamanho da mensagem destina-se a limitar a exposição a ataques de Negação de Serviço (DoS).
maxRetryCycles Um inteiro que indica o número de ciclos de retentativa usados pela funcionalidade de deteção de mensagens venenosas. Uma mensagem torna-se uma mensagem venenosa quando falha em todas as tentativas de entrega de todos os ciclos. A predefinição é 2. Para obter mais informações, consulte MaxRetryCycles.
nome Uma cadeia que contém o nome da configuração da ligação. Este valor deve ser único porque é usado como identificação da ligação. A partir do .NET Framework 4, os bindings e comportamentos não são obrigatórios de ter um nome. Para mais informações sobre configuração padrão e ligaçõ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 previsto para que uma operação aberta seja concluída. Este valor deve ser maior ou igual a Zero. O padrão é 00:01:00.
receiveErroHandling Um ReceiveErrorHandling valor que especifica como as mensagens venenosas e não despacháveis são tratadas.
receitaRetryCount Um inteiro que especifica o número máximo de tentativas imediatas que o gestor de filas deve tentar se a transmissão de uma mensagem da fila da aplicação para a aplicação falhar.

Se o número máximo de tentativas de entrega for atingido e a mensagem não for acedida pela aplicação, então a mensagem é enviada para uma fila de retentativas para reentrega posteriormente. O tempo antes de a mensagem ser transferida de volta para a fila de envio é controlado por retryCycleDelay. Se os ciclos de retentativa atingirem esse maxRetryCycles valor, então a mensagem é enviada para a fila de mensagens envenenadas, ou um reconhecimento negativo é enviado de volta ao remetente.
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. O padrão é 00:10:00.
receiveContextEnabled Um Booleano que especifica se recebe contexto para processar mensagens em filas está ativado. Quando isto está definido para true, um serviço pode "espreitar" uma mensagem na fila para começar a processá-la e, se algo correr mal e uma exceção for lançada, ela permanece na fila. Os serviços também podem "bloquear" mensagens para tentar novamente o processamento num momento posterior. O ReceiveContext fornece um mecanismo para "completar" a mensagem uma vez processada, para que possa ser removida da fila. As mensagens deixam de ser lidas e reescritas em filas na rede, e as mensagens individuais já não são trocadas entre diferentes instâncias de serviço durante o processamento.
retryCycleDelay Um valor TimeSpan que especifica o atraso de tempo entre ciclos de retentativa 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 real de espera pode ser maior. O valor padrão é 00:30:00. Para obter mais informações, consulte RetryCycleDelay.
enviarTempo de espera Um TimeSpan valor que especifica o intervalo de tempo fornecido para que uma operação de envio seja concluída. Este valor deve ser maior ou igual a Zero. O padrão é 00:01:00.
serializationFormat Define o formato utilizado para a serialização do corpo da mensagem. Este atributo é do tipo MsmqMessageSerializationFormat.
timeToLive Um valor TimeSpan que especifica quanto tempo as mensagens são válidas antes de expirarem e serem colocadas na fila de cartas mortas. O padrão é 1.00:00:00.

Este atributo é definido para garantir que as mensagens sensíveis ao tempo não se tornem obsoletas antes de serem processadas pelas aplicações recetoras. Uma mensagem numa fila que não é consumida pela aplicação recetora dentro do intervalo de tempo especificado é dita como expirada. As mensagens expiradas são enviadas para uma fila especial chamada fila de letras mortas. A localização da fila de letras mortas é definida com o DeadLetterQueue atributo ou para o padrão apropriado, com base nas garantias.
useMsmqTracing Um valor booleano que especifica se as mensagens processadas por esta ligação 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 de relatórios sempre que a mensagem sai ou chega a um computador de Fila de Mensagens.
useSourceJournal Um valor booleano que especifique cópias de mensagens processadas por esta ligação deve ser armazenado no diário de origem. A predefinição é false.

Aplicações em fila que querem manter um registo das mensagens que saíram da fila de saída do computador podem copiar as mensagens para uma fila de diário. Quando uma mensagem sai da fila de saída e é recebido um reconhecimento de que a mensagem foi recebida no computador de destino, uma cópia da mensagem é mantida na fila de diário do sistema do computador emissor.

{serializationFormat} Atributo

Valor Description
XML Formato XML
Binary Formato binário
ActiveX Formato ActiveX
ByteArray Serializa o objeto para um array de bytes.
Stream O corpo está formatado como um stream

Elementos filho

Elemento Description
<Segurança> Define as definições de segurança para a ligação. Este elemento é do tipo MsmqIntegrationSecurityElement.

Elementos Principais

Elemento Description
<Encadernações> Este elemento contém uma coleção de encadernações padrão e personalizadas.

Observações

Este elemento de ligação pode ser usado para permitir que aplicações do Windows Communication Foundation (WCF) enviem e recebam mensagens de aplicações MSMQ existentes que utilizam COM, APIs nativas MSMQ ou os tipos definidos no System.Messaging espaço de nomes. Pode usar este elemento de configuração para especificar formas de endereçar a fila, garantias de transferência, se as mensagens devem ser armazenadas de forma permanente, e como as mensagens devem ser protegidas e autenticadas. Para mais informações, veja Como: Trocar Mensagens com Endpoints WCF e Aplicações de Fila 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