有一个IHttpModule设置来打开和关闭,开始和提交NH isession和事务等。 在类似于此的ASHX处理程序中有一段代码,由一些ajax调用:
using (var transactionScope = new TransactionScope(...)) {
// Do some NH stuff and write to a few transactional queues.
transactionScope.Complete();
}
我遇到以下错误,并解决了一些问题: 这个SqlTransaction已经完成;它已不再可用。提交失败。
任何人都可以解释为什么会出现这种情况。 据我所知,尽管在创建ISession的IHttpModule BeginRequest之后创建了TranasctionScope,但NH事务仍在TransactionScope中登记。
任何帮助都将不胜感激。
答案 0 :(得分:0)
嗯......几个小时之后......结果发现我的分布式事务协调员导致了我的问题......
重启它并恢复正常......
希望这有助于其他人。