连续交易最终推广到MSDTC

时间:2013-10-18 09:59:40

标签: sql-server entity-framework sql-server-2012 msdtc

我们有以下设置:EF 5(现在是6个),Ado.NET,Sql Server 2012,.NET 4.5 C#。

我们有一个服务和通用存储库,使用EF和Ado.NET的混合,可以提供更复杂的查询/更新性能。我们一直在TransactionScope中包装它们,一切正常。但是,我们偶尔会收到MSDTC错误,因为我们已关闭此服务以阻止它升级到分布式事务。

我们还管理每个请求的连接和事务,因此每个请求都会创建一个Sql Connection,与EF共享以及任何ado.net操作,并且只有在我们执行任何Ado.NET更新和/或EF时才会创建事务。这非常正常,一切都参与了事务,如果在我们使用的事务之前创建了连接:

EnlistTransaction(Transaction.Current);

那么为什么有时会在多个过度请求之后向MSDTC提升,因为此处的日志显示:

http://www.filedropper.com/warn-2013-10-18(如果有更好的方式来分享文件,请告诉我们)

似乎总是在第15个交易范围内发生。这是不是在游泳池中连接的情况?

我一直在为此敲打几天,并感谢任何帮助。例如,日志显示在此处:事务标识符:eb18070a-77e4-4617-8fbb-63e416f5ab9c:15。

0 个答案:

没有答案