Ricevo la seguente eccezione durante l'utilizzo delle operazioni Nhibernate e ADO.Net all'interno della transazione Scope.Eg. Stava bene con Nhibernate 2.1 ma ora aggiornato a 3.0 che genera errori.Nibire con errore TransactionScope - Fase di preparazione transazione DTC non riuscita - Aggiornamento a Nhiberno 3.0
using (var scope = new TransactionScope(TransactionScopeOption.Required))
{
GetmemberId(); --> NHibernate Call
Update(); ADO Call OracleDB
}
Dal momento che questo comporta transazione come ambiente, NHibernate cerca di smaltire la transazione presto prima che la transazione esterna mi completes.correct se sbaglio, c'è qualche soluzione, perché mi aiuti, ma quando mi muovo la chiamata esterna NHibernate TransactionScope funziona perfettamente. L'esempio che ho dato è campione uno, miniere comporta una più complessa, dal momento che ho a mantenere sia le chiamate all'interno TransactionScope e l'errore Iam ottenere è come seguendo,
ERRORE 13 NHibernate.Impl.AbstractSessionImpl - transazione DTC fase prepre fallita System.ObjectDisposedException: impossibile accedere a un oggetto eliminato. Nome oggetto: "Transazione". a System.Transactions.Transaction.DependentClone (DependentCloneOption cloneOption) a System.Transactions.TransactionScope.SetCurrent (Transaction newCurrent) a System.Transactions.TransactionScope.PushScope()
012.351.
a System.Transactions.TransactionScope.Initialize (Transaction transactionToUse, TimeSpan scopeTimeout, booleano interopModeSpecified) a System.Transactions.TransactionScope..ctor (Transaction transactionToUse) a NHibernate.Transaction.AdoNetWithDistributedTransactionFactory.DistributedTransactionContext.System.Transactions.IEnlistmentNotification.Prepare (PreparingEnlistment preparingEnlistment) 2011-02- 08 13: 41: 46.033 ERRORE 13 NHibernate.Impl.AbstractSessionImpl - fase di preparazione della transazione DTC non riuscita System.ObjectDisposedException: impossibile accedere a un oggetto eliminato. Nome oggetto: "Transazione". a System.Transactions.Transaction.DependentClone (DependentCloneOption cloneOption) a System.Transactions.TransactionScope.SetCurrent (Transaction newCurrent) a System.Transactions.TransactionScope.PushScope()
a System.Transactions.TransactionScope.Initialize (Transaction transactionToUse, TimeSpan scopeTimeout, booleano interopModeSpecified) a System.Transactions.TransactionScope..ctor (Transaction transactionToUse) a NHibernate.Transaction.AdoNetWithDistributedTransactionFactory.DistributedTransactionContext.System.Transactions.IEnlistmentNotification.Prepare (preparingEnlistment preparingEnlistment)
Grazie! Ha funzionato anche per me! – Saxophonist