我有一個特定端點多個消息處理程序做了對SQL Azure數據庫工作(目前仍在使用本地SQL 2012實例)。我有一個發佈2個事件的命令處理程序,稱它們爲X和Y.在同一個端點中,我有X的訂戶和Y的訂戶。這兩個訂戶都在內部使用相同的數據訪問組件,稱爲Z.依賴項注入是基於每個呼叫配置的,不是共享的。交易在NServicebus使用Azure的服務總線傳輸
組件Z在窗簾下使用實體框架6。我遇到的問題是,只是打開數據庫是拋出一個SqlException並抱怨MSDTC升級。
我暫時包裹處理的TransactionScope.Suppress並已經停止了錯誤,但我相信我失去了一些東西更根本。
是它配置端點是非事務性的一個簡單的事情?我原以爲這隻會看到我配置使用Azure服務總線作爲傳輸機制。如果我這樣做,如果在消息處理程序中引發異常,NServiceBus仍會重試? (直到單反限制 - 不是問題的一部分,我也理解冪等問題)。
您是使用SQL Server作爲NServiceBus的傳輸方式,還是僅僅將數據存儲爲數據存儲? 對於Azure服務總線傳輸 - NSB將像往常一樣重試FLR(如果已配置SLR)的異常。 – 2014-09-23 20:49:47
它看起來像一個配置問題,但我努力瞭解您的設置(您使用的是什麼NServiceBus傳輸?) – 2014-09-24 12:12:21
SQL Server僅用於數據存儲。我正在使用Azure服務總線作爲傳輸。我也讀過,如果我使它非事務性,我不會得到FLR或單反重試?那是對的嗎。 – 2014-10-03 13:54:27