在当前项目中,我们使用ADO.NET Entity Framework 作为应用程序的数据层。因为在数据库中有很多工作要做,所以有一些任务需要在事务中运行。我正在使用TransactionScope围绕这些任务。

using (TransactionScope transactionScope = new TransactionScope(TransactionScopeOption.RequiresNew))
{
    // Do something...
    transactionScope.Complete();
}

问题是,一旦我使用TransactionScope,就会发生异常:



看来此错误与MSDTC(Microsoft分布式事务处理协调器)有关。当我更改MSDTC的安全配置时,将引发另一个异常:



无论MSDTC已配置,TransactionScope都会导致错误。
有人知道这里出了什么问题吗?

最佳答案

默认情况下,MSDTC禁用网络访问。要使其正常工作,您应该转到



并选中以下复选框:“网络DTC访问”,“允许入站”,“允许出站”。应根据您的环境选择身份验证。您可能还想看看DTCPing工具来调试分布式事务。为您提供快捷方式-您可能需要修改注册表:



使一切正常运行。

关于.net - MSDTC问题与ADO.NET Entity Framework 中的事务,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1611950/

10-08 22:06