Поделиться через


Модули модулей <>

Общие сведения

Элемент <modules> задает функции, доступные в диспетчере IIS, когда пользователь подключен к сайту или приложению. Элемент <modules> работает с элементом <moduleProviders> следующим образом:

  • Элемент <moduleProviders> задает список поставщиков модулей для диспетчера IIS.
  • Элемент <modules> задает список модулей, которые будут отображаться в виде функций при подключении пользователя к сайту или приложению к диспетчеру IIS.

Вы можете настроить, какие модули будут доступны для отдельных веб-сайтов с помощью <location> тегов, чтобы каждый веб-сайт или приложение можно было настроить в соответствии с вашими потребностями. Например, можно настроить управление на уровне сайта для веб-сайта, чтобы разрешить только небольшое подмножество функций, а дочернее приложение — для более широкого набора функций.

Примечание

Эта коллекция модулей связана с диспетчером IIS и не следует путать с <коллекцией модулей> system.webServer, которая определяет модули, влияющие на обработку HTTP-запросов.

Примечание

Параметры в элементе <modules> можно настроить только в файле Administration.config.

Совместимость

Версия Примечания
IIS 10.0 Элемент <modules> не был изменен в IIS 10.0.
IIS 8,5 Элемент <modules> не был изменен в IIS 8.5.
IIS 8,0 Элемент <modules> не был изменен в IIS 8.0.
IIS 7,5 Элемент <modules> не был изменен в IIS 7.5.
IIS 7.0 Элемент <modules> появился в IIS 7.0.
IIS 6,0 Н/Д

Настройка

Элемент <modules> включен в установку iis 7 по умолчанию.

Инструкции

Отсутствует пользовательский интерфейс для добавления модулей в <modules> элемент iis 7. Примеры программного добавления модулей в элемент см. в <modules> разделе Примеры кода этого документа.

Конфигурация

Атрибуты

Отсутствует.

Дочерние элементы

attribute Описание
add Необязательный элемент. Добавляет модуль в коллекцию модулей для диспетчера IIS.
clear Необязательный элемент. Удаляет все ссылки на модули из родительской коллекции модулей.
remove Необязательный элемент. Удаляет ссылку на модуль из коллекции модулей для диспетчера IIS.

Образец конфигурации

В следующем примере фрагмента конфигурации из файла Administration.config добавляется поставщик управляемого <modules> модуля ContosoProvider в конец коллекции.

Примечание

Этот пример конфигурации сокращен для упрощения чтения.

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

      . . .
      . . .
      . . .

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

В следующем примере фрагмента конфигурации из файла Administration.config указываются пользовательские <modules> элементы для веб-сайта по умолчанию и дочернего приложения путем определения уникальных <location> элементов, которые очищают списки модулей по умолчанию и определяют конкретные модули, которые будут включены соответственно для каждого расположения. Когда удаленное администрирование подключается к одному из расположений, диспетчер 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>

Пример кода

Следующие примеры кода позволяют поставщику управляемого модуля ContosoProvider получить уровень глобального расположения в файле Administration.config.

AppCmd.exe

Примечание

Вы не можете настроить <modules> параметры с помощью AppCmd.exe.

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()