Ошибка с провайдером OLEDB. Новая транзакция не может быть включена в указанный координатор транзакции

    using (TransactionScope transactionscope = new TransactionScope())
    {
     try
        {
            function1(); //perform update on table
            function2(); //perform update on table 
            transactionscope.Complete();
        }
        catch(Exception ex)
        {

        }
     }

Код работает нормально с провайдером sqlclient, но в случае провайдера oledb он дает ошибку "Новая транзакция не может быть завершена в указанном координаторе транзакции". Уже активировать службу DTC на сервере.

введите описание изображения здесь

Ответ 1

Вы не можете открыть соединение в транзакции более одного, поэтому создайте объект подключения и откройте его за пределами области транзакции, сохраните его во время повторного использования сеанса, когда хотите, в транзакции, после завершения транзакции, чтобы закрыть соединение, чтобы избежать какой-либо проблемы.