有两台服务器在 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上不可见。有人知道如何解决这个问题;