HttpModuleとHttpHandlersに依存し、次のように機能するパフォーマンス測定モジュールがあります。
- ページのリクエストがサーバーに届きます。
- HttpModule_Beginは、開始時刻をCookieに書き込みます。
- HttpModule_Endは、終了時刻をCookieに書き込みます。
- クライアントでは、ページの読み込みが終了したら、HttpHandler_ProcessRequestによって処理されるAJAXを介して特別なリクエストを実行します
- HttpHandler_ProcessRequestで、前のHttpModule_End(Cookieに格納されている)によって書き込まれた終了時刻からDateTime.Nowを減算し、データベースに格納します。私が言及するのを忘れた1つのこと:すべてのデータはCookieを介して共有されるため、HttpHandlerは、セッションIDなどなしでCookieからデータをプルするだけです...すべての参加者は同じタイムゾーンにいます。
このプロセスはほとんどの場合正常に機能しますが、1時間を超えるネットワーク時間を報告する場合もあります。これは、終了時刻の書き込みからAJAXリクエストの起動までの時間の経過が非常に長いか、AJAXリクエストの起動からアプリサーバーに到達するまでの時間の経過が長いことを示しています。私は、この問題を実際に引き起こしている可能性があるものを理解しようとしています。なぜ操作が単にタイムアウトしないのですか?