0

IIS プロセスのリサイクルについて書かれているMSDN の記事 (リンク)を読みましたが、

新しいプロセスは、古いワーカー プロセスが停止する前に開始され、リクエストは新しいプロセスに送信されます。

しかし、その記事の次の部分を読んだとき、私はこれを見ました:

マルチインスタンス化の発生: マルチインスタンス化では、プロセスの 2 つ以上のインスタンスが同時に実行されます。アプリケーション プールの構成方法によっては、ワーカー プロセスの複数のインスタンスが実行され、それぞれが同じアプリケーション コードを読み込んで実行する可能性があります。リサイクル設定に関係なく、2 つ以上のプロセスがアプリケーション プールにサービスを提供する Web ガーデンと同様に、重複したリサイクルの発生はマルチインスタンス化の例です。

アプリケーションをマルチインスタンス環境で実行できない場合は、アプリケーション プール (既定値) に対して 1 つのワーカー プロセスのみを構成し、アプリケーション プールのリサイクルが使用されている場合は、オーバーラップ リサイクル機能を無効にする必要があります。

だから、私は少し混乱しています。

一方では、すべての Web 要求が即時かつ永続的に新しいプロセス インスタンスに向けられるようになったとしても、問題はありません。一方、この記事では、私のアプリケーションが「マルチインスタンス環境で実行できない」場合に備えて、リサイクルをまったく使用しないことをお勧めします。つまり、私の意見では、リクエストはいずれかのプロセス インスタンスとしてのプロセスである可能性があり、これは私のアプリ ロジックでは許可されていません。

私が知りたいのは、何か機会があれば、IIS が非常に悪い方向に進み、アプリケーションを崩壊させる可能性があるということです。それとも心配する必要はないのでしょうか?

4

1 に答える 1

1

デフォルトでは、IIS は定期的にリサイクルします。これは正常で健全な動作です (システム リソースが解放されます)。IIS は、同じアプリに対して複数のプロセスを一時的に実行するだけです。リサイクル時に新しいプロセスが開始され、元のプロセスは現在のアクティビティが完了するか、タイムアウト期間が経過するまでのみ実行されます。セッション状態が気になる場合は、State Server を調べてください (SQL が推奨される方法です)。この問題に関する投稿がいくつかありますが、このリンクを確認してください。

于 2012-11-02T14:57:05.243 に答える