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