Я столкнулся со следующей проблемой. У меня есть кусок кода, который выглядит так:
DoSomething(){
using (TransactionScope scope = new TransactionScope())
{
InsertSomething();
InsertSomethingElse();
InsertYetAnotherThing();
ProcessDataRelatedWithThePreviousInserts();
scope.Complete()
}
}
В ProcessDataRelatedWithThePreviousInserts я проверяю условие и, если необходимо, остальная часть рабочего потока перенаправляется в очередь сообщений на другом сервере. На другом сервере я восстанавливаю сообщение и продолжаю рабочий процесс (в основном делаю некоторые другие вставки, связанные с вставками в методе DoSomething).
Это теоретически, потому что мне удается это сделать, только если я удаляю TransactionScope в методе DoSomething. Есть ли способ выполнить то, что я хочу сделать, или мне нужно изменить способ обработки транзакций?