Nhibernate с ошибкой TransactionScope - Ошибка предварительной подготовки транзакции DTC - Обновление до Nhibernate 3.0

Я получаю следующее исключение при использовании операций Nhibernate и ADO.Net внутри транзакции Scope.Eg. Это было нормально с Nhibernate 2.1, но теперь обновлено до 3.0, что вызывает ошибку.

using (var scope = new TransactionScope(TransactionScopeOption.Required))
{
        GetmemberId(); --> NHibernate Call
        Update(); ADO Call OracleDB
}

Поскольку это действует в качестве внешней транзакции Nhibernate пытается избавиться от транзакции незадолго до завершения внешней транзакции. исправьте меня, если я ошибаюсь, Есть ли какое-либо решение, потому что помогите мне, но когда я перемещаю вызов Nhibernate за пределы TransactionScope, все работает нормально. сбой фазы System.ObjectDisposedException: невозможно получить доступ к удаленному объект. Название объекта: «Транзакция». в System.Transactions.Transaction.DependentClone (DependentCloneOption cloneOption) в System.Transactions.TransactionScope.SetCurrent (Транзакция newCurrent) в System.Transactions.TransactionScope.PushScope ()
в System.Transactions.TransactionScope.Initialize (Транзакция transactionToUse, TimeSpan scopeTimeout, Boolean interopModeSpecified) в System.Transactions.TransactionScope..ctor (Transaction transactionToUse) в NHibernate.Transaction.AdoNetWithDistributedTransactionFactory.DistributedTransactionContext.System.Transactions.IEnlistmentNotification.Prepare (PreparingEnlistment Подготовка к зачислению) 2011-02-08 13:41: 46,033 ОШИБКА 13 NHibernate.Impl.AbstractSessionImpl - предварительная фаза транзакции DTC сбой System.ObjectDisposedException: невозможно получить доступ к удаленному объект. Название объекта: «Транзакция». в System.Transactions.Transaction.DependentClone (DependentCloneOption cloneOption) в System.Transactions.TransactionScope.SetCurrent (Транзакция newCurrent) в System.Transactions.TransactionScope.PushScope ()
в System.Transactions.TransactionScope.Initialize (Транзакция transactionToUse, TimeSpan scopeTimeout, Boolean interopModeSpecified) в System.Transactions.TransactionScope..ctor (Transaction transactionToUse) в NHibernate.Transaction.AdoNetWithDistributedTransactionFactory.DistributedTransactionContext.System.Transactions.IEnlistmentNotification.Prepare (PreparingEnlistment prepareEnlistment)

5
задан Serve Laurijssen 4 April 2016 в 13:26
поделиться