共用方式為


全域模組 < 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 未在 IIS 10.0 中修改專案 <globalModules>
IIS 8.5 未在 IIS 8.5 中修改專案 <globalModules>
IIS 8.0 未在 IIS 8.0 中修改專案 <globalModules>
IIS 7.5 未在 IIS 7.5 中修改專案 <globalModules>
IIS 7.0 元素 <globalModules> 是在 IIS 7.0 中引進。
IIS 6.0 N/A

安裝程式

元素 <globalModules> 包含在 IIS 7 的預設安裝中。

作法

如何安裝原生模組

  1. 開啟 [Internet Information Services (IIS) 管理員

    • 如果您使用 Windows Server 2012 或 Windows Server 2012 R2:

      • 在工作列上,依序按一下 [伺服器管理員]、[工具],然後按一下 [Internet Information Services (IIS) Manager]。
    • 如果您使用 Windows 8 或 Windows 8.1:

      • 按住Windows鍵,按字母X,然後按一下[主控台]。
      • 按一下 [系統管理工具],然後按兩下 [ Internet Information Services (IIS) Manager]。
    • 如果您使用 Windows Server 2008 或 Windows Server 2008 R2:

      • 在工作列上,按一下 [ 開始],指向 [ 系統管理工具],然後按一下 [ Internet Information Services (IIS) 管理員]。
    • 如果您使用 Windows Vista 或 Windows 7:

      • 在工作列上,按一下 [開始],然後按一下[主控台]。
      • 按兩下 [系統管理工具],然後按兩下 [ Internet Information Services] (IIS) Manager
  2. 在 [ 連線] 窗格中,按一下您要新增原生模組的伺服器連線。

  3. 在伺服器 [首頁] 頁面上,按兩下 [模組]。
    標題為 MIME 類型、模組、輸出快取、伺服器憑證和背景工作進程的五個圖示螢幕擷取畫面。標題為 [模組] 的圖示會反白顯示。

  4. 在 [ 動作 ] 窗格中,按一下 [ 設定原生模組...

  5. 在 [ 設定原生模組 ] 對話方塊中,按一下 [ 註冊...
    [設定原生模組] 對話方塊的螢幕擷取畫面。

  6. 在 [ 註冊原生模組 ] 對話方塊的 [ 名稱 ] 方塊中,輸入原生模組的名稱。

  7. 在 [ 路徑] 方塊中,輸入.dll檔案位置的檔案系統路徑,或按一下 [ 流覽 ] 按鈕
    [路徑] 方塊的螢幕擷取畫面,其中顯示檔案系統路徑和 位置的名稱。d d l 檔案。

  8. 在 [ 設定原生模組 ] 對話方塊中,選取您剛才註冊之原生模組的選項,按一下 [ 確定],然後再按一下 [ 確定 ]。 這可讓原生模組執行,並將其提供給網頁伺服器上的網站和應用程式使用。

    注意

    如果您不想讓原生模組執行,請清除原生模組的選項,然後按一下 [ 確定]。

  9. 您可以選擇性地鎖定原生模組,如果您不想在組態系統中較低層級覆寫該模組。 在 [模組]頁面上,選取模組,然後按一下 [動作] 窗格中的[鎖定]。

如何啟用原生模組

  1. 開啟 [Internet Information Services (IIS) 管理員

    • 如果您使用 Windows Server 2012 或 Windows Server 2012 R2:

      • 在工作列上,依序按一下 [伺服器管理員]、[工具],然後按一下 [Internet Information Services (IIS) Manager]。
    • 如果您使用 Windows 8 或 Windows 8.1:

      • 按住Windows鍵,按字母X,然後按一下[主控台]。
      • 按一下 [系統管理工具],然後按兩下 [ Internet Information Services (IIS) Manager]。
    • 如果您使用 Windows Server 2008 或 Windows Server 2008 R2:

      • 在工作列上,按一下 [ 開始],指向 [ 系統管理工具],然後按一下 [ Internet Information Services (IIS) 管理員]。
    • 如果您使用 Windows Vista 或 Windows 7:

      • 在工作列上,按一下 [開始],然後按一下[主控台]。
      • 按兩下 [系統管理工具],然後按兩下 [ Internet Information Services] (IIS) Manager
  2. 流覽至您想要管理的伺服器、網站或應用層級。

  3. 在伺服器、網站或應用程式 [首頁] 頁面上,按兩下 [模組]。

  4. 在 [ 動作 ] 窗格中,按一下 [ 設定原生模組...

  5. 在 [ 設定原生模組 ] 對話方塊中,選取您要啟用之原生模組的選項,然後按一下 [ 確定]。
    [設定原生模組] 對話方塊的螢幕擷取畫面。已選取標題為 UriCacheModule 的已註冊模組。

組態

專案 <globalModules> 包含專案的 <add> 集合。 集合中的每個專案都會設定伺服器的全域模組。

屬性

無。

子元素

元素 描述
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 來設定這些設定時,請務必將 認可 參數 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()