EF +多个事务,多个上下文

时间:2015-07-02 21:06:34

标签: c# sql-server entity-framework transactions msdtc

我一直在努力使这种情况有效,但到目前为止还不能

  • 实体框架
  • XUnit(测试库)
  • 2个DbContext(2个不同的数据库,2个连接字符串)

情况:使用AutoRollBack功能运行集成测试(AutoRollback功能manily 将代码包装在父事务中,在测试结束时回滚)

测试看起来像:

[AutoRollBack]
Test(){
Operation1 against DB1
Operation2 against Db2
}
  • 我在两台SQL Server上启用了MSDTC,使用DTCPing工具确认它们之间的通信正常

  • 我在两台服务器的入站和出站防火墙中启用了分布式事务

  • 我在两台服务器的防火墙中的允许程序中添加了分布式事务
  • 两台服务器都可以使用Netbios名称
  • 互相ping通

但是测试中的第二个操作将始终返回"底层提供商在Open" 由于通信问题,MSDTC事务管理器无法从源事务管理器中提取事务。可能的原因是:存在防火墙并且它没有MSDTC进程的例外,两台机器无法通过其NetBIOS名称找到对方,或者两个事务中没有启用对网络事务的支持经理。 (HRESULT异常:0x8004D02B)

我正在寻找另一种调试问题的方法。有没有办法让某些类型的日志,例如

0 个答案:

没有答案