トランザクションScope.Eg内でNhibernateとADO.Net操作を使用する場合、次の例外が発生します。 Nhibernate 2.1ではうまくいきましたが、3.0にアップグレードしてエラーをスローします。TransactionScopeでNhibernateエラー - DTCトランザクション準備段階が失敗しました - Nhibernate 3.0にアップグレード
using (var scope = new TransactionScope(TransactionScopeOption.Required))
{
GetmemberId(); --> NHibernate Call
Update(); ADO Call OracleDB
}
これは周囲のトランザクションとして機能するので、NHibernateのは、外側のトランザクションは、私が間違っている場合は、私を助けるために、すべてのソリューションがあります私をcompletes.correct前に、すぐに取引を配置しようとすると、しかし、私は外にNHibernateのコールを移動するとTransactionScopeはすべて正常に動作します。私が与えている例は、サンプル1、鉱山である私はのTransactionScope内部の両方の呼び出しを保つ必要があり、エラーはIAMは、取得には、以下の、
ERROR 13 NHibernate.Impl.AbstractSessionImplようであることから、より複雑なものを必要とする - DTCトランザクションprepre フェーズが失敗しました。System.ObjectDisposedException:破棄された オブジェクトにアクセスできません。オブジェクト名: 'トランザクション'。 System.Transactions.TransactionScope.PushScopeで System.Transactions.TransactionScope.SetCurrentで System.Transactions.Transaction.DependentClone(DependentCloneOption cloneOption)(トランザクション newCurrent)()System.Transactions.TransactionScope.Initializeで
でSystem.Transactions.TransactionScope..ctor(トランザクション transactionToUseで transactionToUse、TimeSpanのscopeTimeout、ブールinteropModeSpecified) )
(トランザクションでSystem.Transactions.TransactionScope..ctorで transactionToUse、TimeSpanのscopeTimeout、ブールinteropModeSpecified) NHibernate.Transaction.AdoNetWithDistributedTransactionFactory.DistributedTransactionContext.System.Transactions.IEnlistmentNotification.Prepare(PreparingEnlistment preparingEnlistmentで(トランザクション transactionToUse))2011-02- 08 13:41:46,033 ERROR 13 NHibernate.Impl.AbstractSessionImpl - DTCトランザクション準備フェーズ が失敗しました。System.ObjectDisposedException:破棄された オブジェクトにアクセスできません。オブジェクト名: 'トランザクション'。 System.Transactions.TransactionScope.PushScopeで System.Transactions.TransactionScope.SetCurrentで System.Transactions.Transaction.DependentClone(DependentCloneOption cloneOption)(トランザクション newCurrent)()System.Transactions.TransactionScope.Initializeで
(トランザクションで NHibernate.Transaction.AdoNetWithDistributedTransactionFactory.DistributedTransactionContext.System.Transactions.IEnlistmentNotification.Prepare(preparingEnlistment preparingEnlistment)
ありがとうございました!それも私のために働いた! – Saxophonist