現在、.NET 4.0(Windows 7)上で動作するASP.NET MVC 2アプリケーションをデバッグしています。現在はVisual Studio Debugging Web ServerのCassiniにあります。異なるスレッドでBeginRequestとEndRequestを実行するCassini(VS WebDev)
私は突然、Application.EndRequestハンドラで例外が発生していたときに、すべて正常に動作していました。この問題を調査した結果、CassiniがBeginRequestとは異なるスレッドでEndRequestを呼び出していたことがわかりました(BeginRequestで設定され、EndRequestハンドラで使用されていたThreadStatic変数はnullでした。と呼ばれる)。
CassiniがBeginRequestとEndRequestを別のスレッドで実行する理由は何でしょうか?
理由は、 'Async' Pageディレクティブ(Do ASP.NET Requests always BeginRequest and EndRequest on the same thread?を参照してくださいが、私のPageディレクティブには「Async」属性がありません)が原因である可能性があります。
別の原因が必要です。
ありがとうございました!