共用方式為


新增全域模組 < 新增>

概觀

<add>集合的 <globalModules> 元素會指定要加入至 Web 服務器的個別全域模組。

相容性

版本 備註
IIS 10.0 未在 IIS 10.0 中修改專案 <add>
IIS 8.5 未在 IIS 8.5 中修改專案 <add>
IIS 8.0 未在 IIS 8.0 中修改專案 <add>
IIS 7.5 未在 IIS 7.5 中修改專案 <add>
IIS 7.0 <add>集合的 <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. 在伺服器 [首頁] 頁面上,按兩下 [模組]。
    顯示 [模組] 已醒目提示的螢幕擷取畫面。

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

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

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

  7. 在 [ 路徑] 方塊中,輸入.dll檔案位置的檔案系統路徑,或按一下 [ 流覽 ] 按鈕
    顯示 [註冊原生模組] 對話方塊的螢幕擷取畫面。

  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。

組態

<add>集合中的每個 <globalModules> 專案都必須包含可識別模組的名稱屬性,以及指向實作模組之 DLL 的image屬性。

屬性

屬性 描述
image 必要的字串屬性。

指定全域模組.dll檔案的實體路徑。 使用環境變數,例如 %windir% 時,將會展開屬性值。
name 必要的字串屬性。

指定全域模組的名稱。
preCondition 選擇性字串屬性。

指定全域模組執行的條件。

preCondition屬性可以有下列一或多個可能的值。 如果您指定多個值,請使用逗號分隔值 (,) 。
描述
bitness32 當全域模組是 32 位.dll檔案時,請指定 bitness32 值,IIS 應該只針對在 WOW64 模式中執行的背景工作進程載入全域模組, (32 位模擬) 在 64 位作業系統上執行。
bitness64 當全域模組是 64 位.dll檔案時,請指定 bitness64 值,IIS 應該只針對以 64 位模式執行的背景工作進程載入全域模組。
integratedMode 當全域模組應該使用整合式要求處理管線來處理受控內容的要求時,請指定 integratedMode 值。
ISAPIMode 當全域模組應該使用 ISAPI 延伸模組 ASP.NET ISAPI 擴充功能Aspnet_isapi.dll來處理受控內容的要求時,請指定 ISAPIMode 值。
runtimeVersionv1.1 當全域模組只針對設定為使用 .NET Framework 1.1 版的應用程式集區載入時,請指定runtimeVersionv1.1值。
runtimeVersionv2.0 當全域模組只針對設定為使用 .NET Framework 2.0 版的應用程式集區載入時,請指定runtimeVersionv2.0值。

子元素

無。

組態範例

下列範例顯示 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()