2016-04-28 116 views
1

一連幾天我有問題的TransactionScope。錯誤信息如下:TransactionAbortedException當masstransit收到消息

MassTransit.Context.ServiceBusReceiveContext Consumer Exception Exposed System.Transactions.TransactionAbortedException: The transaction has aborted. 
    at System.Transactions.TransactionStatePromotedAborted.CreateAbortingClone(InternalTransaction tx) 
    at System.Transactions.DependentTransaction..ctor(IsolationLevel isoLevel, InternalTransaction internalTransaction, Boolean blocking) 
    at System.Transactions.Transaction.DependentClone(DependentCloneOption cloneOption) 
    at System.Transactions.TransactionScope.SetCurrent(Transaction newCurrent) 
    at System.Transactions.TransactionScope.PushScope() 
    at System.Transactions.TransactionScope..ctor(TransactionScopeOption scopeOption, TransactionOptions transactionOptions, TransactionScopeAsyncFlowOption asyncFlowOption) 
    at MassTransit.Transports.Msmq.TransactionalInboundMsmqTransport.ReceiveMessage(MessageEnumerator enumerator, TimeSpan timeout, Action`1 receiveAction) in d:\BuildAgent-03\work\aa063b4295dfc097\src\Transports\MassTransit.Transports.Msmq\TransactionalInboundMsmqTransport.cs:line 48 
    at MassTransit.Transports.Msmq.InboundMsmqTransport.<>c__DisplayClass2.<EnumerateQueue>b__0(MessageQueueConnection connection) in d:\BuildAgent-03\work\aa063b4295dfc097\src\Transports\MassTransit.Transports.Msmq\InboundMsmqTransport.cs:line 96 
    at MassTransit.Transports.DefaultConnectionPolicy.Execute(Action callback) in d:\BuildAgent-03\work\aa063b4295dfc097\src\MassTransit\Transports\DefaultConnectionPolicy.cs:line 42 
    at MassTransit.Transports.ConnectionPolicyChainImpl.Next(Action callback) in d:\BuildAgent-03\work\aa063b4295dfc097\src\MassTransit\Transports\ConnectionPolicyChainImpl.cs:line 50 
    at MassTransit.Transports.ConnectionHandlerImpl`1.Use(Action`1 callback) in d:\BuildAgent-03\work\aa063b4295dfc097\src\MassTransit\Transports\ConnectionHandlerImpl.cs:line 93 
    at MassTransit.Transports.Msmq.InboundMsmqTransport.EnumerateQueue(Func`2 receiver, TimeSpan timeout) in d:\BuildAgent-03\work\aa063b4295dfc097\src\Transports\MassTransit.Transports.Msmq\InboundMsmqTransport.cs:line 119 
    at MassTransit.Transports.Msmq.InboundMsmqTransport.Receive(Func`2 callback, TimeSpan timeout) in d:\BuildAgent-03\work\aa063b4295dfc097\src\Transports\MassTransit.Transports.Msmq\InboundMsmqTransport.cs:line 45 
    at MassTransit.Transports.Transport.Receive(Func`2 callback, TimeSpan timeout) in d:\BuildAgent-03\work\aa063b4295dfc097\src\MassTransit\Transports\Transport.cs:line 59 
    at MassTransit.Transports.Endpoint.Receive(Func`2 receiver, TimeSpan timeout) in d:\BuildAgent-03\work\aa063b4295dfc097\src\MassTransit\Transports\Endpoint.cs:line 351 
    at MassTransit.Context.ServiceBusReceiveContext.ReceiveFromEndpoint() in d:\BuildAgent-03\work\aa063b4295dfc097\src\MassTransit\Context\ServiceBusReceiveContext.cs:line 91 

隊列清楚,意味着下次交易成功(我認爲)。 這裏沒有相關的堆棧跟蹤。也許ThreadPooling可能與此有關?

此錯誤開始突然出現,有一兩天。負責處理交易的代碼沒有變化。

我需要幫助。任何人?

更新1:

,拋出此異常生產服務器上,但我不能重現它在臨時服務器或開發機。

更新2:

所有的交易都是本地的。

回答

0

的問題是在馬車StructureMap。升級後,一切正常。

0

這聽起來似乎與Microsoft DTC(分佈式事務協調器)的問題,在這種情況下,你很可能會使用到SQL服務器的連接,而閱讀郵件和連接是無法登記到分佈式事務。

有相關MS DTC許多故障排除指南,所以你可能會考慮檢查DTC操作,安全性和連接性。很可能是某個帳戶可能已過期,防火牆規則已更改,或者服務未在其中一個節點上啓動。

+0

謝謝,但沒有其他節點,我不使用DTC。與數據庫的連接具有Enlist = false語句。 – dariol

+0

問題出在越野車結構圖。升級後,一切正常。 – dariol