タグなしサービスのエンドポイントとビヘイビアー

タグなしサービスとは、サービスに関連付けられた Web.config ファイル内に、対応する <service> タグがないサービスのことです。Microsoft AppFabric 1.1 for Windows Server および .NET Framework Version 4 では、タグなしサービスに対して以下のエンドポイントとサービス ビヘイビアーが自動的に追加されます。

エンドポイント

AppFabric では、タグなしサービスに対して 2 種類のエンドポイント (システム エンドポイントと既定のアプリケーション エンドポイント) が自動的に追加されます。

システム エンドポイント

システム エンドポイントは、AppFabric システムによってサービスに自動追加されるエンドポイントです。システム エンドポイントの種類は、machine.config ファイルの endpointExtensions セクションに定義されます (discoveryEndpoint など)。ただし、workflowControlEndpoint と serviceMetadataEndpoint については、この規則の例外があります。最初のエンドポイントは [サービスの構成] ダイアログ ボックスの [ワークフロー ホスト管理] タブで [インスタンス制御を有効にする] オプションをクリックすると追加され、2 番目のエンドポイントは [サービスの構成] ダイアログ ボックスの [全般] タブで [HTTP 経由メタデータを有効にする] オプションをクリックすると追加されます。また、Set-ASInstanceManagement コマンドレットを使用してインスタンス制御を有効に、Set-ASAppServiceMetadata コマンドレットを使用して HTTP 経由のメタデータ アクセスを有効にすることもできます。

既定のアプリケーション エンドポイント

既定のアプリケーション エンドポイントは、アプリケーションでサポートされるプロトコルに基づいてアプリケーションに追加されるエンドポイントです。.NET Framework 4 では、Web アプリケーション内のタグなしのすべてのサービスに対して、そのアプリケーションで有効になっているプロトコルごとに、既定のアプリケーション エンドポイントが追加されます。たとえば、アプリケーションで HTTP プロトコルが有効になっている場合は basicHttpBinding を使用するエンドポイントがサービスに追加され、net.pipe プロトコルが有効になっている場合は netNamedPipeBinding を使用するエンドポイントがサービスに追加されます。アプリケーションで有効になっているプロトコルを表示するには、IIS マネージャー内でアプリケーション名を右クリックして [アプリケーションの管理] をポイントし、[詳細設定] をクリックします。

サービス ビヘイビアー

.NET Framework 4 では、IIS 構成階層を上にたどり、見つかったすべての名前なしビヘイビアー (<ビヘイビアー名 ="">) を結合して、タグなしサービスに適用します。たとえば、ある名前なしビヘイビアーを Web サイト レベルで定義し、別の名前なしビヘイビアーをルート Web.config ファイルで定義した場合、2 つの名前なしビヘイビアーは (Web サイト レベルおよびルート レベルで定義されたもの) 結合され、結合後のビヘイビアーがタグなしサービスに実行時に適用されます。

AppFabric をインストールし、構成するとき、名前なしビヘイビアーはルート Web.config ファイル (<Windows ディレクトリ>\Microsoft .NET\Framework\v4.xxx\Config 内の Web.config ファイル) に書き込まれます。次の構成フラグメントは、サンプルのルート Web.config ファイルからとったものです。

<behavior name="">
    <workflowIdle timeToUnload="00:01:00" timeToPersist="infinite" />
    <workflowInstanceManagement authorizedWindowsGroup="AS_Administrators" />
    <etwTracking profileName="HealthMonitoring Tracking Profile" />
    <sqlWorkflowInstanceStore connectionStringName="ApplicationServerWorkflowInstanceStoreConnectionString" hostLockRenewalPeriod="00:00:20" runnableInstancesDetectionPeriod="00:00:10" instanceEncodingOption="GZip" instanceCompletionAction="DeleteAll" instanceLockedExceptionAction="BasicRetry" />
</behavior>

  2012-03-05