Иногда, когда NServiceBus забирает сообщение, он терпит неудачу, за исключением нижеприведенного. Это заставляет NServiceBus повторить попытку (до настроенного лимита повторов). Иногда одна из повторных попыток приводит к успешной обработке сообщения, но обычно все попытки заканчиваются неудачей с одним и тем же исключением. В этом случае сообщение направляется в очередь ошибок, как и ожидалось, когда все попытки заканчиваются неудачно.
У меня вопрос ... Что в первую очередь может вызвать это исключение? Похоже, это не связано с моим кодом обработчика сообщений, так как мой код не отображается в трассировке стека.
- Версия NServiceBus: 2.6.0.1504
- ОС: Windows Server 2003
- Код обработчика нацелен на .NET 3.5 или более раннюю версию.
Вот полное сообщение об исключении и трассировка стека:
NServiceBus.Unicast.Transport.Msmq.MsmqTransport [(null)] - Failed raising 'finished message processing' event. System.Messaging.MessageQueueException: Cannot enlist the transaction.
at System.Messaging.MessageQueue.SendInternal(Object obj, MessageQueueTransaction internalTransaction, MessageQueueTransactionType transactionType)
at System.Messaging.MessageQueue.Send(Object obj, MessageQueueTransactionType transactionType)
at NServiceBus.Unicast.Transport.Msmq.MsmqTransport.SendMsmqMessage(Message m, String destination)
at NServiceBus.Unicast.Transport.Msmq.MsmqTransport.Send(TransportMessage m, String destination)
at NServiceBus.Unicast.UnicastBus.SendReadyMessage(Boolean startup)
at NServiceBus.Unicast.UnicastBus.TransportFinishedMessageProcessing(Object sender, EventArgs e)
at NServiceBus.Unicast.Transport.Msmq.MsmqTransport.OnFinishedMessageProcessing()