Modules 요소 <모듈 요소>

개요

요소는 <modules> 애플리케이션에 대해 등록된 네이티브 코드 모듈 및 관리 코드 모듈을 정의합니다. IIS(인터넷 정보 서비스) 요청 파이프라인 처리의 일부로 IIS는 모든 요청의 요소에 나열된 각 모듈을 <modules> 호출합니다. 일반적으로 모듈을 사용하여 보안, 통계 및 로깅과 같은 사용자 지정 기능 또는 사용자 지정된 헤더 또는 바닥글 추가와 같은 사용자 지정된 콘텐츠 처리를 구현합니다.

요소에는 <modules> 요소의 <add> 컬렉션이 포함되어 있습니다. 각 요소는 애플리케이션에 대해 사용하도록 설정된 모듈을 정의합니다. 모듈을 사용하도록 설정하면 특정 애플리케이션에 대한 서비스를 제공할 수 있습니다.

네이티브 모듈을 사용하도록 설정하려면 먼저 서버에 설치해야 합니다. 자세한 내용은 globalModules> 요소를 참조<하세요.

관리되는 모듈을 설치할 필요가 없습니다. 각 애플리케이션에 대해 직접 사용하도록 설정할 수 있습니다. 이를 통해 애플리케이션은 애플리케이션의 Web.config 파일에 등록하고 /BIN 또는 /App_Code 디렉터리에 구현을 제공하여 애플리케이션 내에서 직접 관리되는 모듈을 포함할 수 있습니다.

호환성

버전 참고
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의 기본 설치에 포함됩니다.

방법

애플리케이션에 관리되는 모듈을 추가하는 방법

  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. 관리되는 모듈 추가 대화 상자의 이름 상자에 관리되는 모듈의 이름을 입력한 다음 형식 상자에 모듈의 .NET Framework 정규화된 형식을 입력하거나 선택합니다.

  6. 모듈이 관리되는 요청에만 응답하도록 하려면 애플리케이션 또는 관리되는 처리기에 ASP.NET 요청에 대해서만 호출 옵션을 선택합니다.
    관리되는 모듈 추가 대화 상자의 스크린샷.

  7. 확인을 클릭합니다.

구성

ApplicationHost.config 파일의 서버 수준과 Web.config 파일의 애플리케이션 수준에서 요소를 구성 <modules> 합니다.

특성

attribute Description
runAllManagedModulesForAllRequests 선택적 부울 값입니다.

True 이면 관리되는 콘텐츠에 대한 요청이 아니더라도 모든 관리되는 모듈이 모든 요청을 처리할 수 있습니다. 그렇지 않으면 false입니다.

참고: ASP.NET 웹 사이트에서는 라우팅을 지원하도록 이전에 값을 runAllManagedModulesForAllRequeststrue 설정해야 했습니다. 그러나 IIS 7이 서비스 팩으로 업데이트되면 ASP.NET 라우팅을 사용할 때 값을 runAllManagedModulesForAllRequests 로 설정 false 하거나 생략할 수 있습니다. 자세한 내용은 MSDN 웹 사이트에서 ASP.NET 라우팅 을 참조하세요.

기본값은 false입니다.
runManagedModulesForWebDavRequests 선택적 부울 값입니다.

관리 되는 모듈이 WebDAV 요청을 처리할 수 있으면 True입니다. 그렇지 않으면 false입니다.

기본값은 false입니다.

자식 요소

요소 Description
add 선택적 요소입니다.

모듈 컬렉션에 모듈을 추가합니다.
clear 선택적 요소입니다.

모듈 컬렉션에서 모듈에 대한 모든 참조를 제거합니다.
remove 선택적 요소입니다.

모듈 컬렉션에서 모듈에 대한 참조를 제거합니다.

구성 샘플

이 예제에서는 IIS 7 통합 모드에서 실행되는 웹 애플리케이션에 대한 모듈을 구성합니다.

<configuration>
   <system.webServer>
      <modules>
         <add name="Header" type="Contoso.ShoppingCart.Header"/>
      </modules>
   </system.webServer>
</configuration>

샘플 코드

참고

이 문서의 예제에서는 .NET GAC(전역 어셈블리 캐시)에 저장된 관리 코드 어셈블리를 사용하는 것을 보여 줍니다. 이러한 예제의 코드를 사용하여 사용자 고유의 어셈블리를 배포하기 전에 GAC에서 어셈블리 정보를 검색해야 합니다. 이렇게 하려면 다음 단계를 수행합니다.

  • Windows Explorer C:\Windows\assembly 경로를 엽니다. 여기서 C: 는 운영 체제 드라이브입니다.
  • 어셈블리를 찾습니다.
  • 어셈블리를 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다.
  • 문화권 값을 복사합니다. 예: 중립.
  • 버전 번호를 복사합니다. 예: 1.0.0.0.
  • 공개 키 토큰 값을 복사합니다. 예: 426f62526f636b73.
  • 취소를 클릭합니다.

다음 코드 예제에서는 Contoso라는 웹 사이트에 대해 관리되는 모듈을 사용하도록 설정합니다. name 속성은 모듈의 이름 CartHeader를 정의하고, type 속성은 모듈의 관리되는 형식을 정의하고, preCondition 속성은 IIS가 관리되는 요청에 대해서만 모듈을 호출하는 것을 정의합니다.

AppCmd.exe

appcmd.exe set config "Contoso" -section:system.webServer/modules /+"[name='CartHeader',type='Contoso.ShoppingCart.Header',preCondition='managedHandler']"

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.GetWebConfiguration("Contoso");
         ConfigurationSection modulesSection = config.GetSection("system.webServer/modules");
         ConfigurationElementCollection modulesCollection = modulesSection.GetCollection();

         ConfigurationElement addElement = modulesCollection.CreateElement("add");
         addElement["name"] = @"CartHeader";
         addElement["type"] = @"Contoso.ShoppingCart.Header";
         addElement["preCondition"] = @"managedHandler";
         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.GetWebConfiguration("Contoso")
      Dim modulesSection As ConfigurationSection = config.GetSection("system.webServer/modules")
      Dim modulesCollection As ConfigurationElementCollection = modulesSection.GetCollection

      Dim addElement As ConfigurationElement = modulesCollection.CreateElement("add")
      addElement("name") = "CartHeader"
      addElement("type") = "Contoso.ShoppingCart.Header"
      addElement("preCondition") = "managedHandler"
      modulesCollection.Add(addElement)

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Contoso";
var modulesSection = adminManager.GetAdminSection("system.webServer/modules", "MACHINE/WEBROOT/APPHOST/Contoso");
var modulesCollection = modulesSection.Collection;

var addElement = modulesCollection.CreateNewElement("add");
addElement.Properties.Item("name").Value = "CartHeader";
addElement.Properties.Item("type").Value = "Contoso.ShoppingCart.Header";
addElement.Properties.Item("preCondition").Value = "managedHandler";
modulesCollection.AddElement(addElement);

adminManager.CommitChanges();

VBScript

Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Contoso"
Set modulesSection = adminManager.GetAdminSection("system.webServer/modules", "MACHINE/WEBROOT/APPHOST/Contoso")
Set modulesCollection = modulesSection.Collection

Set addElement = modulesCollection.CreateNewElement("add")
addElement.Properties.Item("name").Value = "CartHeader"
addElement.Properties.Item("type").Value = "Contoso.ShoppingCart.Header"
addElement.Properties.Item("preCondition").Value = "managedHandler"
modulesCollection.AddElement addElement

adminManager.CommitChanges()