Понякога, когато 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()