有一个 IHttpModule 设置来打开和关闭,开始和提交 NH isession 和事务等。在 ASHX 处理程序中有一段类似于此的代码,由一些 ajax 调用:
using (var transactionScope = new TransactionScope(...)) {
// Do some NH stuff and write to a few transactional queues.
transactionScope.Complete();
}
我面临以下错误并且有一些解决它的问题:此 SqlTransaction 已完成;它不再可用。提交失败。
任何人都可以解释为什么会这样。据我所知,NH 事务在 TransactionScope 中登记,尽管 TranasctionScope 是在创建 ISession 的 IHttpModule BeginRequest 之后创建的。
任何帮助,将不胜感激。