71

私はこれに関する情報を探していましたが、役に立ちませんでした。なぜこれが必要なのかという文脈は、私がここで尋ねた別の質問です. 具体的には、App_Data でファイルを作成/更新/削除すると、プールのリサイクルが発生しますか?

誰かがリサイクルの原因の詳細なリストを提供できれば、それは素晴らしいことです.

更新: 2 人のユーザーが既に気付いているように、プール全体ではなく AppDomain のみをリサイクルする理由を指定して回答をいただければ幸いです。

4

6 に答える 6

40

他の投稿であなたが気に入った記事は、実際にこれについて本当に良い仕事をしました.

即時リサイクル

  • Web.config の変更
  • Machine.config の変更
  • Global.asax の変更
  • Bin ディレクトリの変更
  • App_Code の変更

遅延リサイクル

他の場所での複数の変更で発生する可能性がありますが、通常、.aspx または .cs/.vb ファイルへの変更でのみこれに気づきました。一時テキスト、csv、またはその他のファイルを追加しても、問題は発生しませんでした。

注: これらはすべてアプリ ドメインのリサイクルであり、プールの実際のリサイクルではありません。通常、アプリケーション POOL は、IIS の設定 (要求数、メモリ制限、アイドル時間、またはスケジュールされた再起動) に基づいてのみリサイクルされます。

于 2008-11-19T15:06:48.150 に答える
32

2 つの異なる効果:

  • AppPool プロセスは、潜在的に複数の AppDomains のホストです。通常、これは多くの効果によって再利用できます。これらは、時間 ( n時間ごと)、要求の不足、メモリ使用量などである可能性があります。すべて IIS 構成マネージャーで構成されています。

  • アプリケーション ルートのホストされたインスタンスである AppDomain は、AppPool 内の他の AppDomain に影響を与えることなく、より頻繁に循環できます。AppDomain のリサイクルに関する Tess の投稿は、非常に洞察力に富んでいます。

再コンパイルのために監視されているフォルダーに書き込んでいます。これにより、ある時点で AppDomain の再作成がトリガーされます。

イベント ログは、リサイクルを開始した原因を特定するのに役立ちます。

于 2008-11-19T15:02:52.183 に答える
27

完全な AppPool リサイクル イベント ログをオンにすることができます。

cscript adsutil.vbs Set w3svc/AppPools/DefaultAppPool/LogEventOnRecycle 255 

次の Scott Guthrie ブログ記事も参照してください。 Application.End イベントの実際の原因。

これは、いくつかの厄介な問題を診断するのに非常に役立ちました.1つは、wwwrootディレクトリにログファイルを書き込んでいたアプリでした.ファイルの変更が多すぎてリサイクルが発生しました...

于 2008-11-20T16:40:45.977 に答える
2

これは、設定に基づいて毎日、またはプロセスの最大仮想メモリを超えたときに発生する可能性があります。

于 2008-11-19T14:57:37.747 に答える
1

これは、アプリ プールが実行されている時間 (分) または処理された要求の数に基づいて、アプリ プールをリサイクルするために操作できる設定です。

また、ここに投稿された web.config の変更やその他のものもリサイクルされます。

サービスの停止/開始と同様に、IIS のリセットもこのトリックを実行します。

于 2008-11-19T16:20:34.023 に答える