因此,您在一个事务范围内使用多个数据源。发生这种情况时,分布式事务应该发生,并且在您的情况下分布式事务管理器配置不正确。正如我从你的问题所理解的那样,你并不想解决这个问题,也不需要分布式事务处理。然后,您需要更改代码,以便在同一个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