1

IIS 6を使用すると、アプリケーションの分離はアプリケーションプールに基づいて行われますか?その場合、1つのアプリケーションプールに複数の仮想ディレクトリがあるとどうなりますか?それらはすべて同じメモリを共有し、1つの仮想ディレクトリがクラッシュすると、他のすべてのアプリもクラッシュしますか?

4

2 に答える 2

2

1つの仮想ディレクトリの機能がクラッシュすると、はい、同じアプリケーションプール内の他のアプリケーション(他の仮想ディレクトリ内のアプリケーションを含む)がクラッシュしたり、害を及ぼしたりする可能性があります。アプリケーションを個別のアプリケーションプールに配置して、アプリケーションを保護します。

仮想ディレクトリ自体は、メモリやリソースを分離しません。これには他の意味もあります。たとえば、あるアプリケーションの静的変数は、同じアプリケーションプール内の別のアプリケーションの静的変数を設定することによって影響を受ける可能性があります。

IIS 6では、アプリケーションプールのポイントは非常に単純です。つまり、1つのクラッシュによって残りがダウンしないように、アプリケーションを分離することです。IIS 7では、それが依然として主な目的ですが、もう少しあります

編集:明確にするために:各アプリケーションプールはそれ自身の「ワーカープロセス」であり、1つのクラッシュが他のアプリケーションプールを傷つけることはありません。各仮想ディレクトリは、単純に次のとおりです。IISをその場所にディレクトリがあるかのように動作させる方法。指すフォルダと同じ名前と場所で仮想ディレクトリを作成すると、デフォルトでは実際には何も実行されませ。必要に応じてURLを作成することに加えて、さまざまな理由で仮想ディレクトリを使用できます。セキュリティのために使用できます。また、これまで説明してきたように、これらを使用して特定のアプリケーションプールに呼び出しを行うことができます。

多くの場合、仮想ディレクトリをWebアプリケーションと同一視します。これは、通常、仮想ディレクトリの構成機能をWebアプリで使用するためです。

セッション状態は、アプリケーションプール内のすべてのWebアプリケーション間ではなく、Webアプリケーション内でのみ維持されます。異なるWebアプリケーション間で共有される値を格納するには、別のことを行う必要があります。ASP.NETキャッシュ、Cookie、データベースなど。アプリケーションにさまざまなフォルダーをさまざまな仮想ディレクトリおよび個別のアプリケーションプールとして配置すると、それらがさまざまなプロセスに配置され、共有セッションの状態が破壊されます。

于 2010-05-19T14:44:36.173 に答える
1

仮想ディレクトリが異なれば、アプリケーションプールも異なります。それらが同じアプリプールを共有して爆発した場合、アプリ全体がクラッシュします。仮想ディレクトリに異なるアプリプールが構成されている場合、それらは分離されます。

仮想ディレクトリに異なるアプリプールを設定すると、メモリセッション状態で共有する機能がないなど、他の結果が生じることに注意してください。この場合、アウトプロセスストレージを使用する必要があります。

于 2010-05-19T14:45:38.107 に答える