using (TransactionScope transactionScope = new TransactionScope(TransactionScopeOption.RequiresNew))
{
// Do something...
transactionScope.Complete();
}
问题是,一旦我使用TransactionScope,就会出现异常:
System.Data.EntityException:底层提供程序在打开时失败。 ---> System.Transactions.TransactionManagerCommunicationException:与底层事务管理器的通信失败。 ---> System.Runtime.InteropServices.COMException(0x80004005):从调用COM组件返回了错误HRESULT E_FAIL。
看起来这个错误与MSDTC(Microsoft分布式事务协调器)有关。当我更改MSDTC的安全配置时,会抛出另一个异常:
无论如何配置MSDTC,TransactionScope都会导致错误。有人知道这里出了什么问题吗?System.Data.EntityException:底层提供程序在打开时失败。 ---> System.Transactions.TransactionManagerCommunicationException:已禁用分布式事务管理器(MSDTC)的网络访问。请使用组件服务管理工具在MSDTC的安全配置中启用DTC以进行网络访问。