Есть два сервера, на которых запущены некоторые службы в 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. Кто-то знает, как решить эту проблему;