サービス自動開始プロバイダー <serviceAutoStartProviders>

概要

<serviceAutoStartProviders> 要素は、アプリケーション プールの startMode 属性が AlwaysRunningに設定されている場合に Windows プロセス アクティブ化サービス (WAS) によって自動的に読み込まれるマネージド アセンブリのコレクションを指定します。 このコレクションを使用すると、開発者は、HTTP 要求が処理される前に初期化タスクを実行するアセンブリを指定できます。 たとえば、アプリケーション開発者は、IIS が要求処理を開始する前に、アプリケーションの初期データベース接続を確立することが必要な場合があります。これで、データベースとの間のラウンド トリップを必要とする初期要求の、アプリケーションの実行速度が向上します。

アプリケーション プールを自動的に開始するように構成する方法の詳細については、<applicationPools> のトピックを参照してください。

Note

この要素は IIS 7.5 で導入されました。

互換性

バージョン メモ
IIS 10.0 <serviceAutoStartProviders> 要素は、IIS 10.0 では変更されませんでした。
IIS 8.5 <serviceAutoStartProviders> 要素は、IIS 8.5 では変更されませんでした。
IIS 8.0 <serviceAutoStartProviders> 要素は IIS 8.0 では変更されませんでした。
IIS 7.5 <serviceAutoStartProviders> 要素が IIS 7.5 で導入されました。
IIS 7.0 該当なし
IIS 6.0 該当なし

段取り

<serviceAutoStartProviders> 要素が IIS 7.5 の既定のインストールに含められます。

操作方法

サービス自動開始プロバイダーを構成する方法

Note

<serviceAutoStartProviders> 要素を構成できる直接のユーザー インターフェイスはないため、次の手順では IIS 構成エディター機能を使います。

  1. 次のようにインターネット インフォメーション サービス (IIS) マネージャーを開きます。

    • Windows Server 2012 または Windows Server 2012 R2 を使用している場合:

      • タスク バーで、[サーバー マネージャー] をクリックし、[ツール][インターネット インフォメーション サービス (IIS) マネージャー] の順にクリックします。
    • Windows 8 または Windows 8.1 を使用している場合:

      • Windows キーを押しながら文字 X を押し、[コントロール パネル] をクリックします。
      • [管理ツール] をクリックし、[インターネット インフォメーション サービス (IIS) マネージャー] をダブルクリックします。
    • Windows Server 2008 または Windows Server 2008 R2 を使用している場合:

      • タスク バーで、[スタート] ボタンをクリックし、[管理ツール][インターネット インフォメーション サービス (IIS) マネージャー] の順にクリックします。
    • Windows Vista または Windows 7 を使用している場合:

      • タスク バーで、[スタート][コントロール パネル] の順にクリックします。
      • [管理ツール] をダブルクリックし、[インターネット インフォメーション サービス (IIS) マネージャー] をダブルクリックします。
  2. [接続] ウィンドウでサーバー名をクリックします。

  3. [ホーム] ペインで、[構成エディター] 機能をダブルクリックします。
    [構成エディター] が選択されている [サーバー ホーム] ウィンドウのスクリーンショット。

  4. [セクション] ドロップダウン メニューで、[system.applicationHost] を展開し、[serviceAutoStartProviders] をクリックします。
    システム ドット アプリケーションの [ホスト] タブが展開されている [構成エディター] ページのスクリーンショット。

  5. [(コレクション)] フィールドの右側にある省略記号 (...) をクリックします。

  6. [操作] ウィンドウで、[追加] をクリックします。

  7. [コレクション エディター] ダイアログ ボックスが表示されたら、次の操作を行います。

    • [name] フィールドに、自動開始プロバイダーの名前を入力します。 次に例を示します。
      "MyAutostartProvider"
    • [type] フィールドに、自動開始アセンブリのマネージド型を入力します。 次に例を示します。
      "MyAutostartProvider, MyAutostartProvider, version=1.0.0.0, Culture=neutral, PublicKeyToken=426f62526f636b73"
    • [コレクション エディター] ダイアログ ボックスを閉じます。
      自動開始プロバイダーの名前とマネージド型のフィールドを示す [コレクション エディター] ダイアログ ボックスのスクリーンショット。
  8. [操作] ウィンドウで、[適用] をクリックします。

Note

このセクションには、IIS 構成エディターを使って IIS 設定を変更する方法についての情報が含まれています。 IIS 構成設定を誤って編集すると、IIS インストールに重大な損傷を与える可能性があります。 したがって、次の手順を注意深く実行してください。 安全性を高めるため、IIS 構成エディターを使って変更を行う前に、IIS 構成設定をバックアップする必要があります。 IIS 構成設定をバックアップする方法と IIS 構成エディターの使用方法の詳細については、次のトピックを参照してください。

構成

<serviceAutoStartProviders> 要素は、ApplicationHost.config のグローバル レベルで構成されます。

属性

なし。

子要素

要素 説明
add 省略可能な要素です。

自動開始プロバイダーのコレクションにプロバイダーを追加します。
clear 省略可能な要素です。

自動開始プロバイダーのコレクションをクリアします。
remove 省略可能な要素です。

自動開始プロバイダーのコレクションからプロバイダーを削除します。

構成サンプル

次のサンプルは、カスタム自動開始プロバイダーをコレクションに追加する <serviceAutoStartProviders> 要素を示しています。

<serviceAutoStartProviders>
   <add name="MyAutostartProvider" type="MyAutostartProvider, MyAutostartProvider, version=1.0.0.0, Culture=neutral, PublicKeyToken=426f62526f636b73" />
</serviceAutoStartProviders>

サンプル コード

次の例は、自動開始プロバイダーのコレクションにサンプル プロバイダーを追加します。

AppCmd.exe

appcmd.exe set config -section:system.applicationHost/serviceAutoStartProviders /+"[name='MyAutostartProvider',type='MyAutostartProvider, MyAutostartProvider, version=1.0.0.0, Culture=neutral, PublicKeyToken=426f62526f636b73']" /commit:apphost

Note

AppCmd.exe を使用してこれらの設定を構成するときは、commit パラメーターを必ず apphost に設定する必要があります。 これで、ApplicationHost.config ファイルの適切な場所セクションに構成設定がコミットされます。

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample {
   private static void Main() {
      using(ServerManager serverManager = new ServerManager()) { 
         Configuration config = serverManager.GetApplicationHostConfiguration();
         ConfigurationSection serviceAutoStartProvidersSection = config.GetSection("system.applicationHost/serviceAutoStartProviders");
         ConfigurationElementCollection serviceAutoStartProvidersCollection = serviceAutoStartProvidersSection.GetCollection();

         ConfigurationElement addElement = serviceAutoStartProvidersCollection.CreateElement("add");
         addElement["name"] = @"MyAutostartProvider";
         addElement["type"] = @"MyAutostartProvider, MyAutostartProvider, version=1.0.0.0, Culture=neutral, PublicKeyToken=426f62526f636b73";
         serviceAutoStartProvidersCollection.Add(addElement);

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample
   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetApplicationHostConfiguration
      Dim serviceAutoStartProvidersSection As ConfigurationSection = config.GetSection("system.applicationHost/serviceAutoStartProviders")
      Dim serviceAutoStartProvidersCollection As ConfigurationElementCollection = serviceAutoStartProvidersSection.GetCollection

      Dim addElement As ConfigurationElement = serviceAutoStartProvidersCollection.CreateElement("add")
      addElement("name") = "MyAutostartProvider"
      addElement("type") = "MyAutostartProvider, MyAutostartProvider, version=1.0.0.0, Culture=neutral, PublicKeyToken=426f62526f636b73"
      serviceAutoStartProvidersCollection.Add(addElement)

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";

var serviceAutoStartProvidersSection = adminManager.GetAdminSection("system.applicationHost/serviceAutoStartProviders", "MACHINE/WEBROOT/APPHOST");
var serviceAutoStartProvidersCollection = serviceAutoStartProvidersSection.Collection;

var addElement = serviceAutoStartProvidersCollection.CreateNewElement("add");
addElement.Properties.Item("name").Value = "MyAutostartProvider";
addElement.Properties.Item("type").Value = "MyAutostartProvider, MyAutostartProvider, version=1.0.0.0, Culture=neutral, PublicKeyToken=426f62526f636b73";
serviceAutoStartProvidersCollection.AddElement(addElement);

adminManager.CommitChanges();

VBScript

Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"

Set serviceAutoStartProvidersSection = adminManager.GetAdminSection("system.applicationHost/serviceAutoStartProviders", "MACHINE/WEBROOT/APPHOST")
Set serviceAutoStartProvidersCollection = serviceAutoStartProvidersSection.Collection

Set addElement = serviceAutoStartProvidersCollection.CreateNewElement("add")
addElement.Properties.Item("name").Value = "MyAutostartProvider"
addElement.Properties.Item("type").Value = "MyAutostartProvider, MyAutostartProvider, version=1.0.0.0, Culture=neutral, PublicKeyToken=426f62526f636b73"
serviceAutoStartProvidersCollection.AddElement(addElement)

adminManager.CommitChanges()