次の方法で共有


グローバル モジュールの追加: <add>

概要

<globalModules> コレクションの <add> 要素は、Web サーバーに追加される個々のグローバル モジュールを指定します。

互換性

バージョン メモ
IIS 10.0 <add> 要素は IIS 10.0 では変更されませんでした。
IIS 8.5 <add> 要素は IIS 8.5 では変更されませんでした。
IIS 8.0 <add> 要素は IIS 8.0 では変更されませんでした。
IIS 7.5 <add> 要素は IIS 7.5 では変更されませんでした。
IIS 7.0 <globalModules> コレクションの <add> 要素は IIS 7.0 で導入されました。
IIS 6.0 該当なし

段取り

<globalModules> 要素は IIS 7 の既定のインストールに含まれています。

操作方法

ネイティブ モジュールをインストールする方法

  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. [操作] ウィンドウで [ネイティブ モジュールの構成] をクリックします。

  5. [ネイティブ モジュールの構成] ダイアログ ボックスで、[登録] をクリックします。
    [ネイティブ モジュールの構成] ダイアログ ボックスを示すスクリーンショット。

  6. [ネイティブ モジュールの登録] ダイアログ ボックスで、[名前] ボックスにネイティブ モジュールの名前を入力します。

  7. [パス] ボックスに、.dll ファイルの場所のファイル システム パスを入力するか、[参照] ボタンをクリックします
    [ネイティブ モジュールの登録] ダイアログ ボックスを示すスクリーンショット。

  8. [ネイティブ モジュールの構成] ダイアログ ボックスで、登録したネイティブ モジュールのオプションを選んで、[OK] をクリックし、もう一度 [OK] をクリックします。 これにより、ネイティブ モジュールが実行できるようになり、Web サーバー上のサイトとアプリケーションでそれを使用できるようになります。

    Note

    ネイティブ モジュールを実行できるようにしたくない場合は、ネイティブ モジュールのオプションをオフにして、[OK] をクリックします。

  9. 必要に応じて、ネイティブ モジュールが構成システムの下位レベルでオーバーライドされないようにする場合は、それをロックできます。 [モジュール] ページでモジュールを選び、[操作] ウィンドウで [ロック] をクリックします。

ネイティブ モジュールを有効にする方法

  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. [操作] ウィンドウで [ネイティブ モジュールの構成] をクリックします。

  5. [ネイティブ モジュールの構成] ダイアログ ボックスで、有効にするネイティブ モジュールのオプションを選んで、[OK] をクリックします。
    [ネイティブ モジュールの構成] ダイアログ ボックスを示すスクリーンショット。UriCacheModule が選択されています。

構成

<globalModules> コレクション内の各 <add> 要素には、モジュールを識別する name 属性と、モジュールを実装している DLL を指す image 属性が含まれている必要があります。

属性

属性 説明
image 必須の文字列属性です。

グローバル モジュールの .dll ファイルの物理パスを指定します。 環境変数 (%windir% など) が使われていると、属性値が展開されます。
name 必須の文字列属性です。

グローバル モジュールの名前を指定します。
preCondition 省略可能な文字列属性。

グローバル モジュールを実行する条件を指定します。

preCondition 属性には、次の使用可能な値のうち 1 つ以上を指定できます。 複数の値を指定する場合は、値をコンマ (,) で区切ります。
Value 説明
bitness32 グローバル モジュールが 32 ビットの .dll ファイルの場合は、bitness32 値を指定します。IIS は、64 ビット オペレーティング システム上で WOW64 モード (32 ビット シミュレーション) で実行されているワーカー プロセスに対してのみ、グローバル モジュールを読み込む必要があります。
bitness64 グローバル モジュールが 64 ビットの .dll ファイルの場合は、bitness64 値を指定します。IIS は、64 ビット モードで実行されているワーカー プロセスに対してのみ、グローバル モジュールを読み込む必要があります。
integratedMode グローバル モジュールが統合要求処理パイプラインを使ってマネージド コンテンツの要求を処理する必要がある場合は、値 integratedMode を指定します。
ISAPIMode グローバル モジュールが ASP.NET ISAPI 拡張機能 (Aspnet_isapi.dll) を使ってマネージド コンテンツの要求を処理する必要がある場合は、値 ISAPIMode を指定します。
runtimeVersionv1.1 グローバル モジュールが .NET Framework バージョン 1.1 を使うように構成されているアプリケーション プールに対してのみ読み込まれる必要がある場合は、値 runtimeVersionv1.1 を指定します。
runtimeVersionv2.0 グローバル モジュールが .NET Framework バージョン 2.0 を使うように構成されているアプリケーション プールに対してのみ読み込まれる必要がある場合は、値 runtimeVersionv2.0 を指定します。

子要素

なし。

構成サンプル

次に示すのは、Web サーバーの最小インストールに含まれるすべてのモジュールのエントリを含む IIS 7 の <globalModules> セクションの例です。 また、BasicAuthenticationModule に対するエントリと、ImageCopyrightModule サード パーティ モジュールに対する別のものも含まれます。

<globalModules>
   <add name="UriCacheModule"
      image="%windir%\System32\inetsrv\cachuri.dll" />
   <add name="FileCacheModule"
      image="%windir%\System32\inetsrv\cachfile.dll" />
   <add name="TokenCacheModule"
      image="%windir%\System32\inetsrv\cachtokn.dll" />
   <add name="HttpCacheModule"
      image="%windir%\System32\inetsrv\cachhttp.dll" />
   <add name="StaticCompressionModule"
      image="%windir%\System32\inetsrv\compstat.dll" />
   <add name="DefaultDocumentModule"
      image="%windir%\System32\inetsrv\defdoc.dll" />
   <add name="DirectoryListingModule"
      image="%windir%\System32\inetsrv\dirlist.dll" />
   <add name="ProtocolSupportModule"
      image="%windir%\System32\inetsrv\protsup.dll" />
   <add name="StaticFileModule"
      image="%windir%\System32\inetsrv\static.dll" />
   <add name="AnonymousAuthenticationModule"
      image="%windir%\System32\inetsrv\authanon.dll" />
   <add name="RequestFilteringModule"
      image="%windir%\System32\inetsrv\modrqflt.dll" />
   <add name="CustomErrorModule"
      image="%windir%\System32\inetsrv\custerr.dll" />
   <add name="HttpLoggingModule"
      image="%windir%\System32\inetsrv\loghttp.dll" />
   <add name="RequestMonitorModule"
      image="%windir%\System32\inetsrv\iisreqs.dll" />
   <add name="BasicAuthenticationModule"
      image="%windir%\System32\inetsrv\authbas.dll" />
   <add name="ImageCopyrightModule"
      image="%windir%\System32\inetsrv\ImageCopyrightModule.dll" />
</globalModules>

サンプル コード

次の例では、ImageCopyrightModule という名前のネイティブ モジュールを IIS 7 にインストールし、サーバー全体でそれを自動的に有効にしています。

AppCmd.exe

appcmd.exe install module /name:ImageCopyrightModule /image:%windir%\system32\inetsrv\imageCopyrightModule.dll

次の構文も使用できます。

appcmd.exe set config -section:system.webServer/globalModules /+"[name='ImageCopyrightModule',image='%windir%\system32\inetsrv\imageCopyrightModule.dll']" /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 globalModulesSection = config.GetSection("system.webServer/globalModules");
         ConfigurationElementCollection globalModulesCollection = globalModulesSection.GetCollection();
         ConfigurationElement addElement = globalModulesCollection.CreateElement("add");
         addElement["name"] = @"ImageCopyrightModule";
         addElement["image"] = @"%windir%\system32\inetsrv\imageCopyrightModule.dll";
         globalModulesCollection.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 globalModulesSection As ConfigurationSection = config.GetSection("system.webServer/globalModules")
      Dim globalModulesCollection As ConfigurationElementCollection = globalModulesSection.GetCollection
      Dim addElement As ConfigurationElement = globalModulesCollection.CreateElement("add")
      addElement("name") = "ImageCopyrightModule"
      addElement("image") = "%windir%\system32\inetsrv\imageCopyrightModule.dll"
      globalModulesCollection.Add(addElement)
      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

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

var globalModulesSection = adminManager.GetAdminSection("system.webServer/globalModules", "MACHINE/WEBROOT/APPHOST");
var globalModulesCollection = globalModulesSection.Collection;

var addElement = globalModulesCollection.CreateNewElement("add");
addElement.Properties.Item("name").Value = "ImageCopyrightModule";
addElement.Properties.Item("image").Value = "%windir%\\system32\\inetsrv\\imageCopyrightModule.dll";
globalModulesCollection.AddElement(addElement);

adminManager.CommitChanges();

VBScript

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

Set globalModulesSection = adminManager.GetAdminSection("system.webServer/globalModules", "MACHINE/WEBROOT/APPHOST")
Set globalModulesCollection = globalModulesSection.Collection

Set addElement = globalModulesCollection.CreateNewElement("add")
addElement.Properties.Item("name").Value = "ImageCopyrightModule"
addElement.Properties.Item("image").Value = "%windir%\system32\inetsrv\imageCopyrightModule.dll"
globalModulesCollection.AddElement addElement

adminManager.CommitChanges()