在当前项目中,我们使用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/