私はここでボックスの外に少し何かしようとしています。私は、それがスレッドの問題だと思うヒットミスの結果を得ています。レスポンス後のASP.NETワーカースレッド
私たちはASP.NET 4アプリケーションを使用して、データベース内の各ページ要求をいくつかのセッション情報とともにログに記録します。また、各ページの生成に要した時間も確認したいので、アプリ内のすべてのページが派生した基本ページを持ち、OnUnloadイベントをオーバーライドします。このハンドラーでは、ページ生成時間を
DateTime.Now.Subtract(HttpContext.Current.Timestamp).TotalSeconds
から取得します。しかしその後、非同期にしようと決めました。クライアントがそのログレコードの挿入を待つ必要がなければ、ページがより速く配信される可能性があります。だから私はこのような何か試してみました:
ThreadPool.QueueUserWorkItem(new WaitCallback(LogPageRequest));
をしかし、私が言ったように、時にはそれが時にはそれがない、動作します。要求が終了したため、サーバーはワーカースレッドを強制終了していますか?これを行うより良い方法はありますか?