已對 IIS 6.0 進(jìn)行了重新設(shè)計(jì)以便利用基本 Windows 內(nèi)核 HTTP.sys。這使其具有內(nèi)置的響應(yīng)和請求緩存和隊(duì)列功能,并能夠?qū)?yīng)用程序進(jìn)程請求直接路由到工作進(jìn)程,從而改善可靠性和性能。
IIS 6.0 引入了兩種用于配置應(yīng)用程序環(huán)境的操作模式:工作進(jìn)程隔離模式和 IIS 5.0 隔離模式。在安裝 IIS 6.0 時(shí)默認(rèn)的隔離模式取決于您執(zhí)行的是全新安裝還是升級。
在全新安裝 IIS 6.0 之后,IIS 以工作進(jìn)程隔離模式運(yùn)行。
在從較低版本的 IIS 6.0 升級之后,隔離模式與以前安裝的 IIS 6.0 版本所配置的相同。
在從 IIS 5.0 或 IIS 4.0 升級之后,在默認(rèn)情況下,IIS 6.0 以 IIS 5.0 隔離模式運(yùn)行,這樣可保持與現(xiàn)有應(yīng)用程序的兼容性。
有關(guān)從一種隔離模式切換到另一種隔離模式的信息,請參閱配置隔離模式。
IIS 5.0 | IIS 5.1 | IIS 6.0 | |
---|---|---|---|
平臺 | Windows 2000 | Windows XP Professional | Windows Server 2003 家族 |
體系結(jié)構(gòu) | 32 位 | 32 位和 64 位 | 32 位和 64 位 |
應(yīng)用程序進(jìn)程模型 | TCP/IP 內(nèi)核 DLLhost.exe(處于中等或高應(yīng)用程序隔離模式下的多個(gè) DLL 主機(jī)) |
TCP/IP 內(nèi)核 DLLhost.exe(處于中等或高應(yīng)用程序隔離模式下的多個(gè) DLL 主機(jī)) |
HTTP.sys 內(nèi)核 當(dāng) IIS 以 IIS 5.0 隔離模式運(yùn)行時(shí):Inetinfo.exe(對于進(jìn)程內(nèi)應(yīng)用程序)或 DLLhost.exe(對于進(jìn)程外應(yīng)用程序) 當(dāng) IIS 以工作進(jìn)程隔離模式運(yùn)行時(shí):W3wp.exe(多工作進(jìn)程) |
配置數(shù)據(jù)庫配置 | 二進(jìn)制 | 二進(jìn)制 | XML |
安全性 | Windows 身份驗(yàn)證 SSL Kerberos |
Windows 身份驗(yàn)證 SSL Kerberos 安全向?qū)?BR> |
Windows 身份驗(yàn)證 SSL Kerberos 安全向?qū)?/P> Passport 支持 |
遠(yuǎn)程管理 | HTMLA | 無 HTMLA 終端服務(wù) |
遠(yuǎn)程管理工具 (HTML) 終端服務(wù) |
群集支持 | IIS 群集 | Windows 支持 | Windows 支持 |
WWW 服務(wù) | Windows 9x 上的個(gè)人 Web 管理器 Windows 2000 上的 IIS |
(可選)Windows XP Professional 上的 IIS | Windows |
IIS 5.0 隔離模式
IIS 5.0 隔離模式按照與 IIS 5.0 中的進(jìn)程管理相似的方式管理應(yīng)用程序進(jìn)程:所有的進(jìn)程內(nèi)應(yīng)用程序都在 Inetinfo.exe 內(nèi)運(yùn)行,進(jìn)程外應(yīng)用程序在單獨(dú)的 DLL 宿主中運(yùn)行。一些現(xiàn)有應(yīng)用程序可能無法并發(fā)運(yùn)行或?qū)?huì)話狀態(tài)與應(yīng)用程序分開存儲(chǔ)。因此,在 IIS 5.0 隔離模式中運(yùn)行進(jìn)程可以確保與大多數(shù)現(xiàn)有應(yīng)用程序的兼容性。下圖顯示如何在 IIS 5.0 隔離模式中處理應(yīng)用程序進(jìn)程。
配置數(shù)據(jù)庫配置
IIS 6.0 的配置數(shù)據(jù)庫以 XML 文件形式存儲(chǔ),而不是以早期版本中的二進(jìn)制格式存儲(chǔ)。位置仍在原處,但是操作方式(更新、回滾、還原和擴(kuò)展)已發(fā)生了變化。有兩個(gè)重要文件,并非一個(gè):MetaBase.xml 和 MBSchema.xml。
有關(guān) IIS 配置數(shù)據(jù)庫的詳細(xì)信息,請參閱關(guān)于配置數(shù)據(jù)庫。
管理
在 IIS 4.0 中,應(yīng)用程序既可以在與 Internet 服務(wù)相同的進(jìn)程中運(yùn)行,也可以在單獨(dú)的進(jìn)程中運(yùn)行。在 IIS 5.0 和 5.1 中,應(yīng)用程序現(xiàn)在可以分為若干匯集的進(jìn)程以增強(qiáng)性能并提高可伸縮性。 詳細(xì)信息,請參閱關(guān)于應(yīng)用程序。在 IIS 6.0 工作進(jìn)程隔離模式中,可將應(yīng)用程序組合到任意數(shù)量的應(yīng)用程序池中。
“應(yīng)用程序映射”屬性頁包含一個(gè)超文本傳輸協(xié)議 (HTTP) 動(dòng)作列表,它們可由映射到特定文件類型的應(yīng)用程序進(jìn)行處理。該動(dòng)作列表與 IIS 4.0 有一處不同。在 IIS 4.0 中,列表中包含“已排除”或未被處理的動(dòng)作。這個(gè)改變是為了適應(yīng)新的 HTTP 動(dòng)作,以便將其添加到協(xié)議中。 有關(guān)應(yīng)用程序映射的詳細(xì)信息,請參閱設(shè)置應(yīng)用程序映射。
群集不是 IIS 6.0 的功能(不支持 IISsynche.exe)。群集是 Windows Server 2003 家族的功能。有關(guān) Windows 群集 (MSCS) 的信息,請參閱 Windows Server 2003 家族的幫助。
與 IIS 4.0 相比,IIS 5.0 中自定義錯(cuò)誤文件的位置已經(jīng)改變。 詳細(xì)信息,請參閱啟用詳細(xì)的自定義錯(cuò)誤消息。
已經(jīng)添加了新的自定義錯(cuò)誤文件,以便報(bào)告更詳細(xì)的錯(cuò)誤信息以及與新功能有關(guān)的錯(cuò)誤。 有關(guān)可用的自定義錯(cuò)誤消息的完整列表,請參閱關(guān)于自定義錯(cuò)誤消息。
基于 Web 的 Internet 服務(wù)管理器 (HTML) 已經(jīng)由 Web 工具應(yīng)用。要使用 Internet 服務(wù)管理器 (HTML) 遠(yuǎn)程管理 IIS, 請參閱如何遠(yuǎn)程管理服務(wù)器。
以編程方式管理
在早期版本的 IIS 中,可以從編譯的 C++ 應(yīng)用程序使用管理基本對象 (ABO) 或者從 C++ 或腳本文件使用 Active Directory 服務(wù)界面 (ADSI) 以編程方式管理 IIS。IIS 6.0 包括了 Windows 管理規(guī)范 (WMI) 提供程序,WMI 這一技術(shù)允許管理員以編程方式控制所有服務(wù)和應(yīng)用程序。詳細(xì)信息,請參閱使用 IIS WMI 提供程序。有關(guān)新的 ADSI 方法的信息,請參閱 IIS 6.0 中的配置數(shù)據(jù)庫更改。
Active Server Pages
從 IIS 6.0 開始,Microsoft Active Server Pages (ASP) 可以與 Microsoft ASP.NET 一起使用。有關(guān)配置 IIS 以運(yùn)行 ASP.NET 應(yīng)用程序的信息,請參閱 ASP.NET。有關(guān) IIS 6.0 中 ASP 功能更改的信息,請參閱 ASP 中的重要更改。
ASP 掛起檢測
當(dāng) IIS 網(wǎng)站繁忙時(shí),可能會(huì)出現(xiàn)這種情況:已經(jīng)產(chǎn)生了最大數(shù)量的 ASP 線程,而一些 ASP 線程卻掛起,這會(huì)導(dǎo)致性能降低。IIS 6.0 能夠通過回收作為 ASP ISAPI 擴(kuò)展 (ASP.dll) 的特定實(shí)例宿主的工作進(jìn)程來解決線程掛起問題。當(dāng) ASP 線程在 IIS 6.0 中掛起時(shí),ASP.dll 調(diào)用 ISAPI 服務(wù)器支持函數(shù) HSE_REQ_REPORT_UNHEALTHY,WWW 服務(wù)回收作為 ASP.dll 宿主的工作進(jìn)程,并在事件日志中創(chuàng)建一個(gè)項(xiàng)目。
有關(guān) ISAPI 服務(wù)器支持函數(shù)的詳細(xì)信息,請參閱 MSDN® Online 上 ISAPI 擴(kuò)展參考中的 ServerSupportFunction。
安全性
IIS 6.0 中的一個(gè)最重要的變動(dòng)涉及 Web 服務(wù)器安全性。為了更好地預(yù)防惡意用戶和攻擊者的攻擊,在默認(rèn)情況下,沒有將 IIS 安裝在 Microsoft Windows Server 2003 家族的成員上。
要點(diǎn)
為了更好地預(yù)防惡意用戶和攻擊者的攻擊,沒有將 IIS 默認(rèn)安裝到 Microsoft® Windows® Server 2003 家族的成員上。而且,當(dāng)您最初安裝 IIS 時(shí),該服務(wù)在高度安全和“鎖定”的模式下安裝。在默認(rèn)情況下,IIS 只為靜態(tài)內(nèi)容提供服務(wù) - 即,ASP、ASP.NET、服務(wù)器端包含、WebDAV 發(fā)布和 FrontPage® Server Extensions 等功能只有在啟用時(shí)才工作。如果安裝 IIS 之后未啟用該功能,則 IIS 返回一個(gè) 404 錯(cuò)誤。您可以為動(dòng)態(tài)內(nèi)容提供服務(wù),并通過 IIS 管理器中的 Web 服務(wù)擴(kuò)展節(jié)點(diǎn)啟用這些功能。同樣,如果應(yīng)用程序擴(kuò)展未在 IIS 中進(jìn)行映射,則 IIS 返回一個(gè) 404 錯(cuò)誤。要映射擴(kuò)展,請參閱設(shè)置應(yīng)用程序映射。有關(guān)如何排解 404 錯(cuò)誤(包括 404.2 和 404.3)、與 IIS 6.0 的新安裝相關(guān)的問題或從低版本的 IIS 進(jìn)行升級的詳細(xì)信息,請參閱疑難解答。
通過 Web 服務(wù)器證書向?qū)Ш?CTL 向?qū),您可以同?Web 和 NTFS 的安全設(shè)置、獲得并安裝服務(wù)器證書以及創(chuàng)建和修改證書信任列表。還可以選擇一個(gè)加密服務(wù)提供程序 (CSP) 以使用證書加密數(shù)據(jù)。 詳細(xì)信息,請參閱使用證書向?qū)А?/P>
IIS 6.0 中的其他安全性變動(dòng)包括下列內(nèi)容:
在升級版本上禁用:除非滿足下列條件之一,否則在 Windows Server 2003 家族的升級版本上禁用萬維網(wǎng)發(fā)布服務(wù)(WWW 服務(wù)):
在開始升級過程之前,您已在 Windows 2000 Server 上運(yùn)行了 IIS 鎖定向?qū)。IIS 鎖定向?qū)ㄟ^禁用不必要的功能來減少攻擊面,并且它允許您確定為站點(diǎn)啟用哪些功能。IIS Lockdown Tool 中提供了 IIS 鎖定向?qū)А?
要點(diǎn) 如果使用 WWW 服務(wù),則強(qiáng)烈建議您在升級到 Windows Server 2003 家族中的產(chǎn)品之前,在 Windows 2000 Server 上運(yùn)行 IIS 鎖定向?qū)。IIS 鎖定向?qū)ㄟ^禁用或刪除 Windows 2000 Server 安裝中不需要的功能來保護(hù)計(jì)算機(jī)的安全。否則,升級后計(jì)算機(jī)上仍保留這些功能,這會(huì)使您的服務(wù)器易受攻擊。
注冊表項(xiàng) RetainW3SVCStatus 已添加到注冊表中 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC 的下面。在 RetainW3SVCStatus 下,您可以添加任何值,然后給它賦予一個(gè) DWORD 值。例如,您可以創(chuàng)建注冊表項(xiàng) HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\RetainW3SVCStatus\do_not_disable,并且 DWORD 值為 1。
對于無人參與的安裝,“DisableWebServiceOnUpgrade = false”項(xiàng)存在于無人參與的安裝腳本中。
通過組策略禁用 IIS:通過使用 Windows Server 2003 家族成員,域管理員可以禁止用戶在其計(jì)算機(jī)上安裝 IIS。
以具有低級訪問權(quán)限的帳戶運(yùn)行:IIS 工作進(jìn)程在訪問權(quán)限極少的用戶上下文中運(yùn)行。這大大減少了潛在攻擊的影響。
提高 ASP 的安全性:所有的 ASP 內(nèi)置功能總是以具有極少訪問權(quán)限的帳戶 IUSR_computername 運(yùn)行。
運(yùn)行可執(zhí)行文件的限制:為了運(yùn)行系統(tǒng)文件夾中的大多數(shù)可執(zhí)行文件(如 cmd.exe),您必須是 Administrators 組、LocalSystem、Interactive 或 Service 帳戶的成員。該限制限制了對 Administrators 的遠(yuǎn)程訪問,因此匿名用戶無法運(yùn)行可執(zhí)行文件。
修補(bǔ)程序管理:對于修補(bǔ)程序管理,管理員可在不中斷服務(wù)的情況下安裝最新的安全修補(bǔ)程序。
已知的擴(kuò)展:IIS 只為對具有已知文件擴(kuò)展名的文件的請求提供服務(wù)。如果請求內(nèi)容的文件擴(kuò)展名未映射到已知的擴(kuò)展,則服務(wù)器拒絕請求。
內(nèi)容的寫保護(hù):在默認(rèn)情況下,拒絕匿名用戶(以 IUSR_computername 帳戶運(yùn)行)對 Web 內(nèi)容進(jìn)行寫入訪問。
超時(shí)和限制:在 IIS 6.0 中,默認(rèn)設(shè)置是安全而主動(dòng)的,這樣可最大限度地減少因以前太寬松的超時(shí)和限制而造成的攻擊。
上載數(shù)據(jù)限制:管理員可以限制能上載到服務(wù)器的數(shù)據(jù)。
緩沖區(qū)溢出保護(hù):工作進(jìn)程會(huì)檢測緩沖區(qū)溢出,并在檢測到時(shí)退出程序。
文件驗(yàn)證:IIS 在將請求發(fā)送到請求處理程序(ISAPI 擴(kuò)展)之前會(huì)驗(yàn)證請求的內(nèi)容是否存在。
索引資源:該權(quán)限現(xiàn)在會(huì)在默認(rèn)情況下啟用。
腳本資源訪問:該權(quán)限允許訪問 ASP 頁腳本和其他腳本的“源代碼”,它是新增功能,且在默認(rèn)情況下被禁用。它可在選擇了“讀取”或“寫入”權(quán)限時(shí)可用。
子驗(yàn)證:在新安裝的 IIS 6.0 中,在默認(rèn)情況下不再啟用。有關(guān)詳細(xì)信息,請參閱 匿名身份驗(yàn)證中的“使用子驗(yàn)證”部分。
UNC 身份驗(yàn)證:在此版本的 IIS 中,UNC 身份驗(yàn)證方法檢查是否有用戶憑據(jù)。詳細(xì)信息,請參閱 UNC 身份驗(yàn)證。
新策略:“禁止安裝 IIS”策略已經(jīng)添加到 Windows Server 2003 產(chǎn)品家族中。該策略允許域管理員控制可以在域中哪些計(jì)算機(jī)上安裝 IIS。詳細(xì)信息, 請參閱 Windows 幫助中的組策略。
Fortezza:已取消了對該功能的支持。
性能
為了限制分配給 ASP 頁的內(nèi)存量,IIS 已經(jīng)將 AspScriptFileCacheSize 的默認(rèn)值設(shè)置為 250 個(gè) ASP 頁,并將 AspScriptEngineCacheMax 的默認(rèn)值設(shè)置為 125 個(gè)腳本引擎。在具有一組大量經(jīng)常請求的 ASP 頁的站點(diǎn)上,可以將 ASPScriptFileCacheSize 設(shè)置得更高一些。因?yàn)?ASP 頁的編譯比從緩存中檢索頁要慢很多,所以這會(huì)改善性能。在只具有少量經(jīng)常請求的 ASP 頁的站點(diǎn)上,可通過將該數(shù)字設(shè)置得小一些來節(jié)省內(nèi)存。
IIS 工具組件
Windows NT Server 的協(xié)作數(shù)據(jù)對象 (CDONTS):CDONTS 已從 Windows Server 2003 家族中刪除。如果 Web 應(yīng)用程序使用 CDONTS,則可以將它們轉(zhuǎn)換為 Microsoft 協(xié)作數(shù)據(jù)對象 (CDO)。CDONTS 中的大多數(shù)方法在 CDO 中都有相匹配的方法,但是名稱可能不同。有關(guān)平臺軟件開發(fā)工具包 (PSDK) 中 CDO 的參考資料,請參閱 MSDN Online 上的 Overview of CDO。
未安裝 IIS 工具組件:Ad Rotator、Browser Capabilities、Content Linker、Content Rotator、Counters、Logging Utility、My Info、Page Counter、Status 和工具不隨 IIS 6.0 一起安裝。但是,如果您的 Web 服務(wù)器是從低版本的 IIS 升級的,則這些工具組件不會(huì)被刪除。您可以從 IIS 6.0 資源工具包中獲取工具組件 DLL 文件的副本。
64 位 Windows Server 2003 家族上的 IIS
在 64 位 Windows Server 2003 家族的操作系統(tǒng)上,IIS 作為 64 位應(yīng)用程序運(yùn)行。這意味著不能從 64 位 Windows Server 2003 家族的操作系統(tǒng)上的 IIS 調(diào)用 32 位應(yīng)用程序。例如,Jet 數(shù)據(jù)庫引擎將不能轉(zhuǎn)換為 64 位應(yīng)用程序,因此,不能使用 ActiveX® 數(shù)據(jù)對象 (ADO) 從 ASP 頁打開 Microsoft Access 數(shù)據(jù)庫。但是,仍可以使用 ADO 訪問其他驅(qū)動(dòng)程序,如 SQL 和 Exchange。