전역 모듈 <globalModules>

개요

요소는 <globalModules> IIS 7 서버에 설치된 전역 수준 모듈을 정의합니다. 요소는 <globalModules> 서버 수준에서만 사용할 수 있으므로 모듈을 설치할 때 IIS는 ApplicationHost.config 파일만 업데이트합니다. 네이티브 모듈을 설치하려면 서버의 관리자여야 합니다.

IIS 7은 네이티브 모듈을 통해 대부분의 요청 처리를 구현합니다. Service Manager 사용하여 IIS 7 역할 서비스 또는 기능을 설치하면 IIS 설치 관리자가 해당 모듈의 요소에 <globalModules> 항목을 추가합니다. 예를 들어 IIS 7 서버에 기본 인증 역할 서비스를 설치하면 설치 관리자가 요소에 BasicAuthenticationModule 항목을 <globalModules> 추가합니다.

타사 모듈을 설치할 때 해당 모듈의 요소에 <globalModules> 항목을 추가해야 합니다. IIS 관리자를 사용하거나, ApplicationHost.config 파일을 수동으로 편집하거나, AppCmd.exe 명령줄 도구를 사용하여 이 작업을 수행할 수 있습니다.

애플리케이션에서 모듈을 사용하도록 설정하려면 애플리케이션의 <module> 요소를 편집해야 합니다.

호환성

버전 참고
IIS 10.0 <globalModules> 요소가 IIS 10.0에서 수정되지 않았습니다.
IIS 8.5 <globalModules> 요소가 IIS 8.5에서 수정되지 않았습니다.
IIS 8.0 <globalModules> 요소가 IIS 8.0에서 수정되지 않았습니다.
IIS 7.5 <globalModules> 요소가 IIS 7.5에서 수정되지 않았습니다.
IIS 7.0 요소는 <globalModules> 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. 서버 홈페이지에서 모듈을 두 번 클릭합니다.
    MIME 형식, 모듈, 출력 캐싱, 서버 인증서 및 작업자 프로세스라는 5개 아이콘의 스크린샷 모듈이라는 아이콘이 강조 표시됩니다.

  4. 작업 창에서 네이티브 모듈 구성...을 클릭합니다.

  5. 네이티브 모듈 구성 대화 상자에서 등록...을 클릭합니다.
    네이티브 모듈 구성 대화 상자의 스크린샷.

  6. 네이 티브 모듈 등록 대화 상자의 이름 상자에 네이티브 모듈의 이름을 입력합니다.

  7. 경로 상자에 .dll 파일 위치의 파일 시스템 경로를 입력하거나 찾아보기 단추를 클릭합니다.
    파일 시스템 경로 및 위치 이름을 보여 주는 경로 상자의 스크린샷. d d l 파일.

  8. 네이 티브 모듈 구성 대화 상자에서 방금 등록한 네이티브 모듈에 대한 옵션을 선택하고 확인을 클릭한 다음 확인을 다시 클릭합니다. 이렇게 하면 네이티브 모듈을 실행하고 웹 서버의 사이트 및 애플리케이션에서 사용할 수 있습니다.

    참고

    네이티브 모듈을 실행하도록 설정하지 않으려면 네이티브 모듈에 대한 옵션을 선택 취소한 다음 확인을 클릭합니다.

  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. 네이 티브 모듈 구성 대화 상자에서 사용하려는 네이티브 모듈에 대한 옵션을 선택한 다음 확인을 클릭합니다.
    네이티브 모듈 구성 대화 상자의 스크린샷. UriCacheModule이라는 등록된 모듈이 선택됩니다.

구성

요소에는 <globalModules> 요소의 <add> 컬렉션이 포함되어 있습니다. 컬렉션의 각 요소는 서버에 대한 전역 모듈을 구성합니다.

특성

없음

자식 요소

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

전역 모듈의 컬렉션에 네이티브 모듈을 추가합니다.
clear 선택적 요소입니다.

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

전역 모듈 컬렉션에서 특정 네이티브 모듈에 대한 참조를 제거합니다.

구성 샘플

다음 예제에서는 웹 서버의 최소 설치에 포함된 모든 모듈에 대한 항목이 포함된 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>

샘플 코드

다음 예제에서는 IIS 7에 ImageCopyrightModule이라는 네이티브 모듈을 설치하고 전체 서버에서 자동으로 사용하도록 설정합니다.

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

참고

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