【问题标题】:WCF Distributed Transactions at several servers and one Database多台服务器和一个数据库上的 WCF 分布式事务
【发布时间】:2011-11-24 00:24:48
【问题描述】:

有两台服务器在 WCF 上运行一些服务。 所有服务都使用共享数据库。 所有服务都使用传输 net.tcp 和允许的事务流

我们开始使用TransactionScope后出现的问题: 第一种方法成功创建用户 第二个成功获得他的个人资料

但第三种方法失败,错误用户未在数据库中找到

using(TransactionScope scope = new TransactionScope())
{
   long employeeId = serviceOnServerA.CreateEmployee(profile);
   var employeeProfile = serviceOnServerA.GetEmployeeProfile(employeeId );

   serviceOnServerB.CreateContract(employeeId);    
   scope.Complete();
}

但是这样的场景:

using(TransactionScope scope = new TransactionScope())
{
   long employeeId = serviceOnServerA.CreateEmployee(work1);
   var employeeProfile = serviceOnServerA.GetEmployeeProfile(employeeId );
   scope.Complete();
}
serviceOnServerB.CreateContract(employeeId);

工作正常,但不适合我的任务;

问题可见,在服务器A上创建的本地事务在服务器B上是不可见的。 有人知道如何解决这个问题;

【问题讨论】:

    标签: wcf distributed-transactions transactionscope


    【解决方案1】:

    问题解决了。与使用的 npgsql 数据库提供程序相关的问题,它不支持 DTC。 代码重写为 MSSQL - 问题消失了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-05
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-16
      • 1970-01-01
      相关资源
      最近更新 更多