2012-01-18 20 views
4

本番環境で奇妙な現象に遭遇しています。数時間ごとに、アプリケーションはSession_Endイベントでセッションを終了し、Application_Endイベントを発生させてすべてのユーザーを蹴飛ばします。 ログでは、すべてのユーザーのセッションが同じミリ秒で閉じられます。 この問題は、テスト環境で発生しましたが、まれにしか発生しませんでした。これを複製できませんでした。 他のすべてのアプリケーションは正常に動作していますが、このサーバー上で動作している他のアプリケーションはうまく動作します。メモリリークやCPU過多はありません。このアプリケーションは、ExtJSバージョン3.3、NHibnernate 3.2およびASP.NET 4.0に基づいています。 タイムアウトエラーのようには見えませんが、一部のユーザーはセッションが終了するまでに数分しか作業しませんでした。 誰も同じような問題に遭遇しましたか?すべてのセッションの終了とそれに続くアプリケーション終了イベント

+2

は、アプリケーションプールのリサイクルですか? –

答えて

5

アプリケーションプールがリサイクルして(したがって、開いているセッションをすべて終了してアプリケーションを終了させる)理由がいくつかあります。完全な概要については、http://blogs.msdn.com/b/johan/archive/2007/05/16/common-reasons-why-your-application-pool-may-unexpectedly-recycle.aspxを参照してください。

本番環境でも同様の問題が発生しました。リサイクルの理由は、アプリケーションプールをリサイクルさせた各スキャンでweb.configに触れたウィルススキャナでした。サーバー上のウイルススキャナを無効にするか、ウイルススキャナ内のアプリケーションディレクトリを除外してください。

次のファイルを変更すると、アプリケーションプールの即時再起動トリガします:

  • のmachine.config
  • は、Global.asaxの
  • がbinディレクトリに
  • 何かがそれかだ

    • web.configファイルをサブディレクトリ

    この投稿:http://weblogs.asp.net/scottgu/archive/2005/12/14/433194.aspxは、アプリケーションをキャッチする方法を示していますより詳細なロギングを使用して、これはリサイクルの原因を見つけるのに役立ちます。

  • 関連する問題