モジュール <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()