IIS プロセスのリサイクルについて書かれているMSDN の記事 (リンク)を読みましたが、
新しいプロセスは、古いワーカー プロセスが停止する前に開始され、リクエストは新しいプロセスに送信されます。
しかし、その記事の次の部分を読んだとき、私はこれを見ました:
マルチインスタンス化の発生: マルチインスタンス化では、プロセスの 2 つ以上のインスタンスが同時に実行されます。アプリケーション プールの構成方法によっては、ワーカー プロセスの複数のインスタンスが実行され、それぞれが同じアプリケーション コードを読み込んで実行する可能性があります。リサイクル設定に関係なく、2 つ以上のプロセスがアプリケーション プールにサービスを提供する Web ガーデンと同様に、重複したリサイクルの発生はマルチインスタンス化の例です。
アプリケーションをマルチインスタンス環境で実行できない場合は、アプリケーション プール (既定値) に対して 1 つのワーカー プロセスのみを構成し、アプリケーション プールのリサイクルが使用されている場合は、オーバーラップ リサイクル機能を無効にする必要があります。
だから、私は少し混乱しています。
一方では、すべての Web 要求が即時かつ永続的に新しいプロセス インスタンスに向けられるようになったとしても、問題はありません。一方、この記事では、私のアプリケーションが「マルチインスタンス環境で実行できない」場合に備えて、リサイクルをまったく使用しないことをお勧めします。つまり、私の意見では、リクエストはいずれかのプロセス インスタンスとしてのプロセスである可能性があり、これは私のアプリ ロジックでは許可されていません。
私が知りたいのは、何か機会があれば、IIS が非常に悪い方向に進み、アプリケーションを崩壊させる可能性があるということです。それとも心配する必要はないのでしょうか?