这个MSDTC配置问题?

时间:2012-10-30 12:45:53

标签: entity-framework ado.net windows-server-2008 windows-server-2003 msdtc

我似乎遇到了与Microsoft分布式事务处理协调器(MSDTC)相关的问题。

SCENARIO

我正在使用TransactionScope,在单一范围内,它会在不同的服务器上访问两个不同的数据库(例如,运行Windows Server 2003的 DB_A 和运行Windows Server 2008的 DB_B )。使用Entity Framework 4.0访问一个数据库,使用普通ADO.NET API访问另一个数据库。

当我从开发机器(运行WinXP)运行应用程序时,它会准确地提交和回滚两个连接。但是,当我运行应用程序,部署在另一台服务器上(例如 WAS_A 运行Windows Server 2003)时,它正确提交,但是在异常的情况下不会回滚两台服务器上的数据库活动。 / p>

我认为这将是 WAS_A 上的MSDTC配置问题。所以我去了MSDTC - >安全配置并检查所有可用选项(正如我之前在其他机器上所做的那样)。但我仍然面临同样的问题。

寻找您的专业意见。 :)

1 个答案:

答案 0 :(得分:0)

我相信你需要调查Enabling Transaction Flow。具体来说,看看TransactionScope and WCF Services

中描述的错误和另一个错误
  

第二个WCF服务调用中的错误是没有回滚在先前的WCF服务调用中所做的更改...   为了在您的客户端创建环境事务并确保它由WCF服务使用...

然后,本文详细介绍了以下步骤:

  • 使用transactionFlow
  • 配置绑定
  • 使用[TransactionFlow(TransactionFlowOption)]
  • 装饰您的界面
  • 使用[OperationBehavior(TransactionScopeRequired)]
  • 装饰您的方法
  • (可选)使用Transaction Binding *
  • 更新您的连接字符串

*注意:我认为这是可选的。