サービス管理サービス

Microsoft AppFabric 1.1 for Windows Server は、WCF および WF のサービスを実行および管理するための環境となります。サービス管理サービスによって、クライアントからリモートでサービスを開始できるようになり、AppFabric の管理能力がさらに高まります。サービス管理サービスそのものは 1 つの WCF サービスです。このサービスは、serviceManagement 属性が有効化されているすべてのアプリケーションに AppFabric によって自動的に追加されます。

サービス管理サービスによってサポートされるシナリオ

サービス管理サービスによってサポートされる主なシナリオを次に示します。

ワークフロー サービス インスタンスのアクティブ化

ワークフロー管理サービス (WMS) は、保留中の作業項目を持つワークフロー サービス インスタンスをアクティブ化するためにサービス管理サービス (SMS) を起動します。SMS は、ワークフロー サービス ホストをアクティブ化します。このホストによってインスタンス ストア (たとえば SQL ワークフロー サービス ストア) が作成され、インスタンス ストアに対するメソッドが起動され、このメソッドによってインスタンス ストアからメモリにワークフロー サービス インスタンスがロードされます。インスタンスのアクティブ化の詳細については、「ワークフロー管理サービス」を参照してください。

重要

ワークフロー管理サービスが機能するには、サービスが含まれるアプリケーションに対して net.pipe プロトコルが有効化されていることと、サービスが含まれるサイトに対して net.pipe バインディングが有効化されていることが必要です。

スケジュールに従ってサービスを開始する

このシナリオでは、ユーザーが作成したスケジュールに従って、カスタムのスケジューラによってアプリケーション内のサービスが開始されます。たとえば、複数の作業項目の一括処理をサービスによって毎日実行する場合です。このシナリオはサービス管理サービス機能によって実現しますが、カスタム スケジューラはサービス管理サービスには含まれません。

構成

AppFabric をインストールすると、次に示すサービス アクティブ化パラメーターがルート Web.config に追加されます。このパラメーターは、serviceManagement 属性が有効化されている各アプリケーションに対してサービス管理サービスをアクティブ化するときに使用されます。

<system.serviceModel>
    <serviceHostingEnvironment>
        <serviceActivations>
            <add relativeAddress="~/ServiceManagement.svc" service="Microsoft.ApplicationServer.Hosting.Management.ServiceManagement" factory="Microsoft.ApplicationServer.Hosting.Management.ServiceManagementFactory, Microsoft.ApplicationServer.Hosting, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
        </serviceActivations>
    </serviceHostingEnvironment>
</system.serviceModel>

サービス管理サービスでは、バインディングのプロトコルとしてサポートされるのは net.pipe のみです。アプリケーションに追加されるサービス管理サービスのアドレスのパターンは、{scheme}://hostname:port/<アプリケーション>/ServiceManagement.svc です。たとえば、net.pipe://localhost/VirtualApplicationB/ServiceManagement.svc となります。

警告

Microsoft AppFabric 1.1 for Windows Server のインストールでは、.svc 拡張子がルート Web.config の WCF HTTP ハンドラーにマップされていることが前提となります。.svc 拡張子が WCF HTTP ハンドラー以外のハンドラーにマップされている場合、サービス管理サービス (SMS) は初期化に失敗します。WCF HTTP ハンドラーに他の拡張子がマップされている場合は、SMS の拡張子を .svc からルート Web.config 内の拡張子に更新します。ただし、.svc ハンドラー マッピングがアプリケーション レベルで上書きされた場合、この解決策は機能しません。

サービス管理サービス機能は、既定の設定では有効になっています。AppFabric のインストール時に、この機能を有効にするために serviceManagement 要素がルート Web.config に追加され、この要素の enabled 属性が true に設定されます。これらの設定は、アプリケーション、仮想ディレクトリ、およびサービスの各レベルに継承されます。したがって、serviceManagement 属性は、AppFabric がインストールされているコンピューター上のすべてのアプリケーションに対して有効になります。

<microsoft.applicationServer>
    <hosting>
        <serviceManagement enabled=”true” endpointConfiguration=”” authorizedWindowsGroup=”AS_Administrators” />
    </hosting >   
</microsoft.applicationServer>

次の表に、serviceManagement 要素の属性の説明を示します。

属性 説明

enabled

AppFabric インストール プログラムによってルート Web.config 内のこの属性は既定で true に設定されます。

authorizedWindowsGroup

サービス管理サービスによって公開されるエンドポイントにアクセスできる Windows グループ。AppFabric インストール プログラムによって AS_Administrators がこの権限を持つ Windows グループとして設定されます。また、アプリケーションの実行に使用される ID にも、エンドポイントに対するアクセス権限が付与されます。

endpointConfiguration

ルート Web.config の standardEndpoints セクションで定義されている標準サービス管理エンドポイントの 1 つです。この属性の既定値は ServiceManagementNetPipeEndpoint です。

// fragment from root Web.config 
<serviceManagement endpointConfiguration="ServiceManagementNetPipeEndpoint" enabled="true" authorizedWindowsGroup="AS_Administrators" />

特定のアプリケーションに対してサービス管理を無効にするには、そのアプリケーションの Web.config に次の構成を追加します。

<serviceManagement enabled=”false” />

サービス管理サービス全体を削除するには、アプリケーションの Web.config に次の構成を追加します。

<serviceActivations>
     <remove relativeVirtualPath=”~/ServiceManagement.svc” />
</serviceActivations>

ヒント

サービス管理サービスは、内部で ServiceHostingEnvironment.EnsureServiceAvailable メソッドを使用します。このメソッドは、ASP .NET ルーティング パスを使用したサービスのアクティブ化はサポートしていません。したがって、サービス管理サービスはこのアクティブ化のシナリオをサポートしていません。

関連項目

概念

方法: サービス管理サービスの使用

  2012-03-05