NHibernate提交事务收到“提交事务请求没有相应的BEGIN事务”后

NHibernate提交事务收到“提交事务请求没有相应的BEGIN事务”后,nhibernate,transactionscope,Nhibernate,Transactionscope,我将事务范围用于分布式事务和NHibernate内部事务。 在所有操作之后,我检查Transaction.Current是否未中止,并尝试提交NHibernate事务 有时我会收到以下错误: 提交事务请求没有相应的开始事务。 此会话中活动的事务已提交或中止 通过另一个会议 使用以下堆栈跟踪: System.Data.SqlClient.SqlConnection.OnErrorSqlException异常, 布尔断开连接 System.Data.SqlClient.SqlInternalConn

我将事务范围用于分布式事务和NHibernate内部事务。 在所有操作之后,我检查Transaction.Current是否未中止,并尝试提交NHibernate事务

有时我会收到以下错误:

提交事务请求没有相应的开始事务。 此会话中活动的事务已提交或中止 通过另一个会议

使用以下堆栈跟踪:

System.Data.SqlClient.SqlConnection.OnErrorSqlException异常, 布尔断开连接 System.Data.SqlClient.SqlInternalConnection.OnErrorSqlException 异常,布尔断开连接 System.Data.SqlClient.TDSpaser.ThroweException和WarningDSParserStateObject stateObjöSystem.Data.SqlClient.TdsParser.RunBehavior 运行行为、SqlCommand cmdHandler、SqlDataReader数据流、, BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject 斯塔托布耶夫 System.Data.SqlClient.TdsParser.TdsExecuteTransactionManagerRequestByte[] 缓冲区,TransactionManagerRequestType请求,字符串transactionName, TransactionManagerIsolationLevel isoLevel,Int32超时, SqlInternalTransaction事务,TdsParserStateObject stateObj, 布尔值isDelegateControlRequest System.Data.SqlClient.SqlInternalConnectionDS.ExecuteTransactionYukonTransactionRequest transactionRequest、字符串transactionName、IsolationLevel iso、, SqlInternalTransaction,布尔值 isDelegateControlRequest of System.Data.SqlClient.SqlInternalConnectionDS.ExecuteTransactionTransactionRequest transactionRequest、字符串名称、IsolationLevel iso、, SqlInternalTransaction,布尔值 isDelegateControlRequest of System.Data.SqlClient.SqlInternalTransaction.Commit System.Data.SqlClient.SqlTransaction.Commit NHibernate.Transaction.AdoTransaction.Commit


主要的问题是,这种错误是偶然的。原因可能是什么?

看起来您不是通过集中代码打开会话,而是每次都关闭会话事务,否则我看不出发生这种情况的原因

确保在引发此错误的位置使用相同的代码路径。。可能正在查看堆栈跟踪