web-dev-qa-db-ja.com

理由のないアプリプールのリサイクル

実稼働サーバーの1つ(Windows 2003サーバー)で問題が発生しています。すべてのアプリプールが約10秒ごとに(すべて同時に)リサイクルされているようです。言うまでもなく、これはアプリケーションのパフォーマンスに悪影響を及ぼします。

症状:
-アプリケーションキャッシュが失われます
-アプリケーション起動コードのデバッグステートメントがトリガーされています
-バックグラウンドスレッドが停止します

私が発見した他のこと:
-驚くべきことに、w3wp.exeプロセスは安定したままです
-そのマシンでアンチウイルスが実行されていない
-アプリケーションの1つに<httpRuntime waitChangeNotification="1000000" /><compilation numRecompilesBeforeAppRestart="100000" />を追加してファイル変更通知を無効にしようとしましたが、役に立ちませんでした
-イベントビューアに疑わしいものはありません

ここで他に何を試すべきかわからない。

2
liho1eye

IISヘルスモニタリングログを有効にする必要があります。再起動の理由がアプリケーションイベントログに記録されます。次のWebサイトで変更がないため、ファイル変更通知を無効にしないでください。すべて。作成/変更/削除されるファイル/データはすべて、Webサイトのフォルダー構造の外部に存在する必要があります。

これは、IIS 7でアプリケーションプールGUIに組み込まれています。IIS 6でこれを有効にするには、関連情報をWebに追加できます。 config。特に「アプリケーションライフタイムイベント」をログに記録する必要があります。

  <system.web>
    <healthMonitoring enabled="true" heartbeatInterval="1">
      <rules>
        <add name="HeartBeat" eventName="Heartbeats" provider="EventLogProvider" profile="Default" minInstances="1" minInterval="00:01:00" maxLimit="Infinite"/>
        <add name="App Lifetime" eventName="Application Lifetime Events" provider="EventLogProvider" profile="Default" minInstances="1" minInterval="00:00:00" maxLimit="Infinite"/>
      </rules>
    </healthMonitoring>
  <system.web>

ヘルスモニタリングイベントの使用
http://msdn.Microsoft.com/en-us/library/ms228103.aspx

3
Greg Askew

Binフォルダーへの書き込みアクセスをしばらく拒否するために必要なアクセス許可がありますか?これを行うと、何かがフォルダに書き込んでいる場合、エラーが表面化する可能性があり、そこから追跡できます。

エラーが発生しない場合の最悪のシナリオでは、binフォルダーが変更されないため、少なくともアプリプールはリサイクルされません。

もう1つの方法は、Microsoftの Process Monitor を使用し、フォルダーを監視して、どのようなアクセスが行われているかを確認することです。これにより、読み取り/書き込みが行われるファイルとそれにアクセスするプロセスが表示されます。

1