マルチスレッドで、SQL Server 2008RCでNServiceBusとNHibernateを使用している(DTCを使用している)アプリケーションに取り組んでいます。プロセスには1つのセッションファクトリがあります。各スレッドには独自のセッションがあり、トランザクションが完了すると破棄されます。以下の例外が断続的にスローされます。これは、プロセスの開始から5分後、およびプロセスの開始から6時間後に発生します。それがいつ起こるかについてのパターンはないようです。
DTCトランザクションが中止されたときに、AbstractBatcherがコマンドを閉じる際に問題が発生しているようです。
どんな助けでも大歓迎です。
フレームワークバージョン:v4.0.30319説明:未処理の例外が原因でプロセスが終了しました。例外情報:System.InvalidOperationExceptionスタック:System.Collections.Generic.Dictionary`2 + KeyCollection + Enumerator [[System._ Canon、mscorlib、Version = 4.0.0.0、Culture = neutral、PublicKeyToken = b77a5c561934e089]、[System。_Canon、mscorlib、Version = 4.0.0.0、Culture = neutral、PublicKeyToken = b77a5c561934e089]]。NoveNext()at NHibernate.AdoNet.AbstractBatcher.CloseCommands()at NHibernate.AdoNet.AbstractBatcher.Dispose(Boolean)at NHibernate.Impl.SessionImpl .Close()at NHibernate.Impl.SessionImpl.Dispose(Boolean)at NHibernate.Transaction.AdoNetWithDistributedTransactionFactory + <> c_ DisplayClass1.b_0(System.Object、System.Transactions.TransactionEventArgs)at System.Transactions.TransactionCompletedEventHandler.Invoke(System.Object、System.Transactions.TransactionEventArgs)at System.Transactions.TransactionStatePromotedAborted.EnterState(System.Transactions.InternalTransaction)at System.Transactions .InternalTransaction.DistributedTransactionOutcome(System.Transactions.InternalTransaction、System.Transactions.TransactionStatus)at System.Transactions.Oletx.RealOletxTransaction.FireOutcome(System.Transactions.TransactionStatus)at System.Transactions.Oletx.OutcomeEnlistment.InvokeOutcomeFunction(System )at System.Transactions.Oletx.OletxTransactionManager.ShimNotificationCallback(System.Object、Boolean)atSystem.Threading._ThreadPoolWaitOrTimerCallback。PerformWaitOrTimerCallback(System.Object、Boolean)