Я получаю следующее исключение при использовании операций 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)