次の方法で共有


Windows プロセス アクティブ化サービスでのホスティング

Windows プロセス アクティブ化サービス (WAS) は、Windows Communication Foundation (WCF) サービスをホストするアプリケーションを含むワーカー プロセスのアクティブ化と有効期間を管理します。 WAS プロセス モデルは、HTTP への依存関係を削除することで、HTTP サーバーの IIS 6.0 プロセス モデルを一般化します。 これにより、WCF サービスは、メッセージ ベースのアクティブ化をサポートし、特定のコンピューターで多数のアプリケーションをホストする機能を提供するホスティング環境で、HTTP プロトコルと非 HTTP プロトコル (Net.TCP など) の両方を使用できます。

WAS ホスティング環境で実行される WCF サービスの構築の詳細については、「方法: WASで WCF サービスをホストする」を参照してください。

WAS プロセス モデルには、より堅牢で管理しやすい方法でアプリケーションをホストし、リソースを効率的に使用できるいくつかの機能が用意されています。

  • アプリケーションとワーカー プロセス アプリケーションのメッセージ ベースのアクティブ化は、HTTP および非 HTTP ネットワーク プロトコルを使用して到着した受信作業項目に応答して動的に開始および停止します。

  • 実行中のアプリケーションの正常性を維持するための堅牢なアプリケーションとワーカー プロセスのリサイクル。

  • 一元化されたアプリケーションの構成と管理。

  • 完全な IIS インストールの展開フットプリントを必要とせずに、アプリケーションが IIS プロセス モデルを利用できるようにします。 Windows Server AppFabric は、IIS 7.0 および Windows プロセス アクティブ化サービス (WAS) と連携して、NET4 WCF および WF サービス用の豊富なアプリケーション ホスティング環境を提供します。 これらの利点には、プロセス ライフサイクル管理、プロセス リサイクル、共有ホスティング、迅速な障害保護、プロセス孤立、オンデマンド アクティブ化、正常性の監視などがあります。 詳細については、「AppFabric ホスティング機能」と「AppFabric ホスティングの概念」を参照してください。

WAS アドレス指定モデルの要素

アプリケーションには URI (Uniform Resource Identifier) アドレスがあります。これは、有効期間と実行環境がサーバーによって管理されるコード ユニットです。 1 つの WAS サーバー インスタンスには、さまざまなアプリケーションが存在する場合があります。 サーバーは、アプリケーションを サイトと呼ばれるグループに整理します。 サイト内では、外部アドレスとして機能する URI の構造を反映した階層的な方法でアプリケーションが配置されます。

アプリケーション アドレスには、ベース URI プレフィックスと、アプリケーション固有の相対アドレス (パス) という 2 つの部分があります。これは、結合時にアプリケーションの外部アドレスを提供します。 ベース URI プレフィックスはサイト バインドから構築され、サイトの下にあるすべてのアプリケーションに使用されます。 アプリケーション アドレスは、アプリケーション固有のパス フラグメント ("/applicationOne" など) を取得し、ベース URI プレフィックス ("net.tcp://localhost" など) に追加して、完全なアプリケーション URI に到達することによって構築されます。

次の表は、HTTP サイト バインドと非 HTTP サイト バインドの両方を使用する WAS サイトで考えられるいくつかの対処シナリオを示しています。

シナリオ サイトバインディング アプリケーション パス ベース アプリケーション URI
HTTP のみ http: *:80:* /appTwo http://localhost/appTwo/
HTTP と非 HTTP の両方 http: *:80:*

net.tcp: 808:*
/appTwo http://localhost/appTwo/
net.tcp://localhost/appTwo/
非 HTTP のみ net.pipe: * /appThree net.pipe://appThree/

アプリケーション内のサービスとリソースにも対処できます。 アプリケーション内では、アプリケーション リソースはベース アプリケーション パスを基準にしてアドレス指定されます。 たとえば、コンピューター名 contoso.com 上のサイトに、HTTP プロトコルと Net.TCP プロトコルの両方のサイト バインドがあるとします。 また、サイトに /Billing にある 1 つのアプリケーションが含まれており、GetOrders.svc でサービスが公開されていると仮定します。 次に、GetOrders.svc サービスが SecureEndpoint の相対アドレスを持つエンドポイントを公開した場合、サービス エンドポイントは次の 2 つの URI で公開されます。

  • http://contoso.com/Billing/GetOrders.svc/SecureEndpoint
  • net.tcp://contoso.com/Billing/GetOrders.svc/SecureEndpoint

WAS ランタイム

アプリケーションは、アドレス指定と管理を目的としてサイトに編成されます。 実行時には、アプリケーションもアプリケーション プールにグループ化されます。 アプリケーション プールには、さまざまなサイトのさまざまなアプリケーションを収容できます。 アプリケーション プール内のすべてのアプリケーションは、共通のランタイム特性のセットを共有します。 たとえば、それらはすべて同じバージョンの共通言語ランタイム (CLR) で実行され、すべて共通のプロセス ID を共有します。 各アプリケーション プールは、ワーカー プロセス (w3wp.exe) のインスタンスに対応します。 共有アプリケーション プール内で実行されている各マネージド アプリケーションは、CLR AppDomain を使用して他のアプリケーションから分離されます。

関連項目