看来我遇到了与 Microsoft 分布式事务协调器 (MSDTC) 相关的问题。
设想
我正在使用 TransactionScope,并且在单个范围内它会访问不同服务器上的两个不同数据库(例如,运行 Windows Server 2003 的DB_A和运行 Windows Server 2008 的DB_B)。一个数据库使用 Entity Framework 4.0 访问,另一个使用普通的 ADO.NET API。
当我从我的开发机器(运行 WinXP)运行应用程序时,它会准确地提交和回滚两个连接。但是,当我运行部署在另一台服务器上的应用程序(例如运行 Windows Server 2003 的WAS_A)时,它会正确提交,但如果出现异常,则不会回滚两台服务器上的数据库活动。
我认为这将是WAS_A上的 MSDTC 配置问题。所以我去了 MSDTC -> 安全配置并检查了所有可用的选项(就像我之前在其他机器上所做的那样)。但我仍然面临同样的问题。
寻找您的专家意见。:)