全域模組 < 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 的預設安裝中。
作法
如何安裝原生模組
開啟 [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。
在 [ 連線] 窗格中,按一下您要新增原生模組的伺服器連線。
在 [ 動作 ] 窗格中,按一下 [ 設定原生模組...
在 [ 註冊原生模組 ] 對話方塊的 [ 名稱 ] 方塊中,輸入原生模組的名稱。
在 [ 設定原生模組 ] 對話方塊中,選取您剛才註冊之原生模組的選項,按一下 [ 確定],然後再按一下 [ 確定 ]。 這可讓原生模組執行,並將其提供給網頁伺服器上的網站和應用程式使用。
注意
如果您不想讓原生模組執行,請清除原生模組的選項,然後按一下 [ 確定]。
您可以選擇性地鎖定原生模組,如果您不想在組態系統中較低層級覆寫該模組。 在 [模組]頁面上,選取模組,然後按一下 [動作] 窗格中的[鎖定]。
如何啟用原生模組
開啟 [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。
流覽至您想要管理的伺服器、網站或應用層級。
在伺服器、網站或應用程式 [首頁] 頁面上,按兩下 [模組]。
在 [ 動作 ] 窗格中,按一下 [ 設定原生模組...
組態
專案 <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()