プロセスの分離により開発を簡素化する
IIS の従来のバージョンでは、ASP を含むすべての ISAPI アプリケーションで、サーバー プロセスのリソースとメモリを共有していました。これにより、パフォーマンスはより高速でしたが、不安定なコンポーネントにより、サーバーがクラッシュする可能性がありました。さらに悪いことには、サーバーが再起動されるまで、インプロセスコンポーネントをアンロードできませんでした。これは、アップグレードによって、直接影響を受けていたかどうかに関係なく、既存のコンポーネントを修正した結果、同じサーバーを共有するすべてのサイトが影響を受けたということを意味します。
コンポーネント サービスと密接に統合された結果、IIS 4.0 以降で実行されるアプリケーションは独立したプロセスで起動できます。これを行う理由には次の 2 つがあります。
- コンポーネントの開発。1 つのコンポーネントをアップデートするために、サーバー全体を停止する代わりに、アプリケーションを 1 つだけ停止し、再起動することが出来ます。IIS の従来のバージョンでは、アプリケーション、またはまったく新しいアプリケーションに、更新されたコンポーネントを追加する場合、Web サーバーを停止し、サーバーの共有場所にある新しいバージョンで、古い DLL を置き換えてから、Web サービスをもう一度開始しなければなりませんでした。今回のバージョンからは独立したプロセスを使用することにより、すべてのアプリケーションをシャット ダウンすることなく、Web サイトを更新することができます。
- プロセスの分離。これにより、クラッシュの原因となったアプリケーションだけに、その影響を制限できます。主要な Web サービスをクラッシュから保護することに加え、アプリケーションが必要な回数だけ自動的に再開始されるように構成できます。アプリケーションで致命的なエラーが発生した場合は、このアプリケーションのプロセスは自動的に停止されます。このアプリケーションは、コンポーネント サービス システム プロセスで実行されているので、処理中のトランザクションはすべてその時点で停止されます。このイベントは Windows イベント ログに記録され、アプリケーションはコンポーネント サービスによって再起動されます。この問題によって影響を受けるクライアントは、このアプリケーションに対して送信した要求が未処理になっているものだけです。
プロセスの分離
アプリケーションを独立したプロセスとして実行する場合、または 1 つのプール プロセスでほかのアプリケーションと一緒に実行する場合は、[ホーム ディレクトリ] プロパティ シート、または [仮想ディレクトリ] プロパティ シートの [アプリケーション保護] ボックスで [高 (分離プロセス)] または [中 (プール)] を選択する必要があります。アプリケーション開始点ディレクトリにアプリケーションが作成されていなければ、これを最初に作成しなければなりません。新しいプロセスで実行されるコンポーネントは、適切な COM アプリケーションにインストールする必要があります。詳細については、コンポーネント サービスのマニュアルを参照してください。