Я знаю, что это - старый поток, но если кто-либо столкнулся с проблемной Системой. InvalidOperationException: TransactionScope должен быть расположен на том же потоке, что он был создан.
решение состоит в том, чтобы обновить до .net 4.5.1 как минимум и использовать транзакцию как следующее:
using (var transaction = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
{
//Run some code here, like calling an async method
await someAsnycMethod();
transaction.Complete();
}
Теперь транзакция совместно используется методами. Смотрите на ссылку ниже. Это обеспечивает простой пример и больше детали
Для полных деталей, смотрит на Это