因此,您在一個事務範圍內使用多個數據源。發生這種情況時,分佈式事務應該發生,並且在您的情況下分佈式事務管理器配置不正確。正如我從你的問題所理解的那樣,你並不想解決這個問題,也不需要分佈式事務處理。然後,您需要更改代碼,以便在同一個TransactionScope下不再需要使用多個數據庫。假設你有這樣的事情:
using (var transaction = new TransactionScope()) {
var data = SelectSomeDataFromDatabaseA();
if (data.IsFine) {
InsertSomeDataInDatabaseB();
}
transaction.Complete();
}
在這裏,您與數據庫A和B中一個事務範圍內的工作,但你並不真的需要做到這一點 - 只要將代碼從數據庫中的外事務範圍選擇數據庫。如果您使用不同連接相同的數據庫工作,這可能發生 -
還要注意的是,在某些情況下,發行交易可即使你與相同數據庫工作全面啓動。如果這是你的情況 - 避免創建多個連接,而是將相同的連接實例傳遞給你需要的所有方法。
來源
2016-04-29 06:48:29
Evk
可能的重複[如何修復分佈式事務管理器(MSDTC)已被禁用錯誤](http://stackoverflow.com/questions/2050512/how-to-fix-distributed-transaction-manager-msdtc-has-被禁用,錯誤) – gmiley