モジュール <modules>

  • 概要
  • 互換性
  • セットアップ
  • 方法
  • 構成
  • サンプル コード

概要

<modules> 要素は、ユーザーがサイトまたはアプリケーションに接続している際に IIS マネージャーで使用可能な機能を指定します。<modules> 要素は、次に示すように <moduleProviders> 要素と関連して動作します。

  • <moduleProviders> 要素は、IIS マネージャーに対してモジュール プロバイダーの一覧を指定します。
  • <modules> 要素は、ユーザーが IIS マネージャーを使用してサイトまたはアプリケーションに接続した際に、機能として表示されるモジュールの一覧を指定します。

<location> タグを使用して、個々の Web サイトで使用可能なモジュールを構成して、各 Web サイトまたはアプリケーションをニーズに合わせてカスタマイズすることができます。たとえば、機能のサブセットのみを許可するように Web サイトのサイトレベルの管理を構成し、子アプリケーションではより広範囲の機能を使用するように構成できます。

: このモジュールのコレクションは IIS マネージャーに固有のものです。HTTP 要求の処理に影響するモジュールを定義する <system.webServer/modules> コレクションと混同しないように注意してください。

: <modules> 要素の設定は、Administration.config ファイル内でのみ構成可能です。

互換性

  IIS 7.0 IIS 6.0
注意 <modules> は IIS 7.0 で新たに導入された要素です。 なし

セットアップ

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

方法

IIS 7.0 で <modules> 要素にモジュールを追加するためのユーザー インターフェイスはありません。<modules> 要素にプログラムによってモジュールを追加する方法の例については、このドキュメントの「サンプル コード」セクションを参照してください。

構成

属性

なし。

子要素

属性 説明
add オプションの要素。

IIS マネージャーのモジュールのコレクションにモジュールを追加します。

clear オプションの要素。

親モジュール コレクションからモジュールに対するすべての参照を削除します。

remove オプションの要素。

IIS マネージャーのモジュールのコレクションから 1 つのモジュールに対する参照を削除します。

構成サンプル

Administration.config から引用された次のサンプル構成では、<modules> コレクションの最後に、ContosoProvider という名前のマネージ モジュール プロバイダーを追加します。

: この引用されたサンプル構成は、読みやすくするために短くされています。

<location path=".">
   <modules>
      <add name="Modules" />
      <add name="Handlers" />

      . . .
      . . .
      . . .

      <add name="ContosoProvider" />

   </modules>
</location>

Administration.config ファイルから引用された次のサンプル構成では、既定のモジュールの一覧をクリアし、各場所で有効にされる特定のモジュールを定義する一意の <location> 要素を定義することにより、Default Web Site と子アプリケーションに対してカスタムの <modules> 要素を指定します。リモート管理でいずれかの場所に接続すると、IIS マネージャーは、各 <location> 要素の一覧に含まれるモジュールによって表される機能のみを表示します。

<location path="Default Web Site">
   <modules>
      <clear />
      <add name="DefaultDocument" />
      <add name="DirectoryBrowse" />
   </modules>

</location>

<location path="Default Web Site/ContosoApplication">
   <modules>
      <clear />
      <add name="DefaultDocument" />
      <add name="DirectoryBrowse" />

      <add name="Handlers" />
   </modules>
</location>

サンプル コード

次のコード サンプルでは、Administration.config ファイルのグローバルな場所のレベルで、ContosoProvider という名前のマネージ モジュール プロバイダーを有効にします。

AppCmd.exe

: AppCmd.exe を使用して <modules> 設定を構成することはできません。

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.GetAdministrationConfiguration();
         ConfigurationSection modulesSection = config.GetSection("modules");

         ConfigurationElementCollection modulesCollection = modulesSection.GetCollection();
         ConfigurationElement addElement = modulesCollection.CreateElement("add");
         addElement["name"] = @"ContosoProvider";
         modulesCollection.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.GetAdministrationConfiguration
      Dim modulesSection As ConfigurationSection = config.GetSection("modules")

      Dim modulesCollection As ConfigurationElementCollection = modulesSection.GetCollection
      Dim addElement As ConfigurationElement = modulesCollection.CreateElement("add")
      addElement("name") = "ContosoProvider"
      modulesCollection.Add(addElement)

      serverManager.CommitChanges()
   End Sub

End Module

JavaScript

var adminManager = new ActiveXObject("Microsoft.ApplicationHost.WritableAdminManager"); 
adminManager.CommitPath = "MACHINE/WEBROOT"; 
adminManager.SetMetadata("pathMapper", "AdministrationConfig");
var modulesSection = adminManager.GetAdminSection("modules", "MACHINE/WEBROOT"); 

var modulesCollection = modulesSection.Collection;
var addElement = modulesCollection.CreateNewElement("add");
addElement.Properties.Item("name").Value = "ContosoProvider";
modulesCollection.AddElement(addElement);

adminManager.CommitChanges();

VBScript

Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT"
adminManager.SetMetadata "pathMapper", "AdministrationConfig"
Set modulesSection = adminManager.GetAdminSection("modules", "MACHINE/WEBROOT")

Set modulesCollection = modulesSection.Collection
Set addElement = modulesCollection.CreateNewElement("add")
addElement.Properties.Item("name").Value = "ContosoProvider"
modulesCollection.AddElement(addElement)

adminManager.CommitChanges()