【问题标题】:Is This MSDTC configuration Issue?这是 MSDTC 配置问题吗?
【发布时间】:2012-10-19 19:25:10
【问题描述】:

我似乎遇到了与 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 -> 安全配置并检查了所有可用的选项(就像我之前在其他机器上所做的那样)。但我仍然面临同样的问题。

寻求您的专家建议。 :)

【问题讨论】:

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


    【解决方案1】:

    我相信您需要查看Enabling Transaction Flow。具体来说,看看TransactionScope and WCF Services 中描述的一个错误和另一个完成的方式:

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

    文章接着详细介绍了以下步骤:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-29
      • 1970-01-01
      • 2011-07-18
      • 2011-03-08
      相关资源
      最近更新 更多