ASP.NET ワーカー プロセス

ASP.NET は、ASP.NET ワーカー プロセスと呼ばれるプロセス内で動作します。すべての ASP.NET 機能は、このプロセスの範囲内で動作します。

通常の Web サーバーには、ASP.NET ワーカー プロセスが 1 つだけ存在します。この点が Web ファームおよび Web ガーデンとは異なります。

  • Web ファームには複数の ASP.NET ワーカー プロセスが存在します。

    サーバーのグループ内の各サーバーが個別の ASP.NET ワーカー プロセスを処理します。

  • Web ガーデンには複数の ASP.NET ワーカー プロセスが存在します。

    SMP サーバー内の各 CPU が個別の ASP.NET ワーカー プロセスを処理します。

ASP.NET ワーカー プロセスの選択

Web クライアントが Web ファームまたは Web ガーデンに接続すると、複数の ASP.NET ワーカー プロセスから 1 つが選択され、リクエストを実行します。

  • Web ファームでは、ネットワーク ロード バランスによって、選択される ASP.NET ワーカー プロセスが決まります。
  • Web ガーデンでは、選択される ASP.NET ワーカー プロセスは ASP.NET によって決定されます。

複数の ASP.NET ワーカー プロセスによる状態管理

単独の ASP.NET ワーカー プロセス(通常の Web サーバー)から複数の ASP.NET ワーカー プロセス(Web ファームまたは Web ガーデン)に移行すると、状態管理が複雑になります。

Web ページはステートレスなので、Web サーバーが他の手段で状態を保持する必要があります。Web サーバーによる状態管理の一般的な手段は、Session State と ASP.NET Cache です。

Note

(単一 Web サーバーでの)永続と状態の問題については、「Crystal Reports で使用する適切な永続アプローチの選択」で詳細に説明されています。

セッションとキャッシュはどちらも、1 つの ASP.NET ワーカー プロセスのメモリ スペースに置かれます。ただし、Web ファームまたは Web ガーデンでは、複数の ASP.NET ワーカー プロセスが同時に動作します。各 ASP.NET ワーカー プロセス内のセッションとキャッシュは、複数のプロセスにまたがって状態を管理できません。

そのため、状態管理には追加のレイヤが必要になります。これは、Web ファームまたは Web ガーデン内の各 ASP.NET ワーカー プロセスの状態情報を保存および管理するアウトプロセス Session State サーバーです。詳細については、「アウトプロセス Session State」を参照してください。