0

IHttpModule をセットアップして、NH isession およびトランザクションなどを開いたり閉じたり、開始およびコミットしたりします。ASHX ハンドラーに、一部の ajax によって呼び出される、これと同様のコードを配置します。

using (var transactionScope = new TransactionScope(...)) {
   // Do some NH stuff and write to a few transactional queues.
   transactionScope.Complete();
}

次のエラーに直面しており、それを解決するためにいくつかの問題があります: This SqlTransaction has completed; もう使用できません。コミットに失敗しました。

なぜこれが当てはまるのか、誰もが光を当てることができますか. 私の知る限り、NH トランザクションは TransactionScope に参加しますが、TransactionScope は IHttpModule BeginRequest の後に作成され、ISession が作成されます。

どんな助けでも大歓迎です。

4

1 に答える 1

0

うーん...数時間後...分散トランザクションコーディネーターが問題の原因であることが判明しました...

再起動して正常に戻った...

これが他の誰かに役立つことを願っています。

于 2013-02-08T05:53:01.073 に答える