Windows Server 2008 中 Web 服務器 (IIS) 角色更改
Windows Server® 2008 操作係統為 Web 發布提供了一個統一的平台,該平台集成了 Internet 信息服務 (IIS)、ASP.NET 和 Windows Communication Foundation。IIS 版本 7.0 是對現有 IIS Web 服務器的重大改進,並且在集成 Web 平台技術中發揮著重要作用。
IIS 7.0 有什麼作用?
IIS 7.0 版本的主要支柱為:
靈活的擴展性模型,可進行功能強大的自定義
強大的診斷功能和疑難解答工具
委派的管理
通過自定義提高了安全性並且減少了受攻擊麵
真正的應用程序 xcopy 部署
Windows Communication Foundation (WCF) 服務的集成應用程序和運行狀況管理
改進的管理工具
這些支柱幫助創建統一的平台,以便 IIS 7.0 為 Web 解決方案提供一個一致的開發人員和管理員模型。
靈活的擴展性模型,可進行功能強大的自定義
IIS 7.0 使開發人員能夠擴展 IIS 以采用新的更有效的方式提供自定義功能。IIS 7.0 擴展性包括一個全新的核心服務器應用程序編程接口 (API) 集,它允許采用本機代碼 (C/C++) 和托管代碼(諸如 C# 和 Visual Basic 2005 之類的語言以及使用 .NET Framework 的語言)開發功能模塊。
IIS 7.0 還能夠擴展配置、腳本、事件日誌記錄和管理工具功能集,從而為軟件開發人員提供了一個構建 Web 服務器擴展的完整服務器平台。
強大的診斷功能和疑難解答工具
IIS 7.0 使開發人員和 IT 專業人員能夠更輕鬆地對錯誤網站和應用程序進行疑難解答。IIS 7.0 提供有關 IIS 的內部診斷信息的清晰視圖,並且收集和顯示詳細的診斷事件以幫助對有問題的服務器進行疑難解答。
委派的管理
IIS 7.0 使托管或管理網站或 WCF 服務的人能夠將管理控製權限委派給開發人員或內容所有者,因此減少了管理員的擁有成本和管理負擔。提供了新的管理工具來支持這些委派功能。
通過自定義提高了安全性並且減少了受攻擊麵
您可以控製在 Web 服務器上安裝和運行哪些功能。IIS 7.0 由 40 多個獨立的功能模塊組成。每個功能模塊都可以單獨安裝在服務器上以減少服務器的受攻擊麵,並且減少不需要它的位置的管理開銷。有關各種功能模塊的詳細信息,請參閱 IIS 7.0 模塊 (https://go.microsoft.com/fwlink/?LinkId=68740)(可能為英文網頁)。
真正的應用程序 xcopy 部署
IIS 7.0 允許您將 IIS 配置設置存儲在 web.config 文件中,這樣更容易跨多個前端 Web 服務器使用 xcopy 複製應用程序,從而避免了高成本且易於出錯的複製和手動同步的問題。
WCF 服務的應用程序和運行狀況管理
若要通過許多協議改善 WCF 服務的開發和托管,Windows Server 2008 包含 Windows 激活服務 (WAS),該服務支持任意協議偵聽器的可插入激活。WAS 為所有類型的消息激活的應用程序提供了智能資源管理、請求進程激活、運行狀況監視以及自動故障檢測和回收。WAS 基於 IIS 6.0 請求處理模型。
改進的管理工具
IIS 7.0 引入了一個新的麵向任務的用戶界麵 (UI) 和一個新的命令行工具,用於管理 Web 服務器、網站和 Web 應用程序。有關詳細信息,請參閱本主題的哪些現有功能將發生更改?中的“管理工具”部分。
誰會對該功能感興趣?
托管或開發網站或 WCF 服務的任何企業或組織都會從對 IIS 7.0 的改進中受益。
如果您位於下列任何組中,則應該查看本主題以及有關 IIS 7.0 的其他支持文檔:
從技術方麵評估該產品的 IT 計劃者和分析者
各組織的企業 IT 計劃者和設計者
部署或管理 IIS 的 IT 專業人員
創建網站或 WCF 服務的開發人員
Internet 服務提供商 (ISP) 或提供 Web 托管的類似組織
是否有其他特殊注意事項?
默認情況下,啟用 Windows 防火牆
在 Windows Server 2008 中,默認情況下啟用 Windows 防火牆。在安裝 Web 服務器 (IIS) 角色期間,安裝過程添加了以下入站 Windows 防火牆規則以允許所選擇的角色服務的通信:
如果安裝與 HTTP 有關和與 HTTPS 有關的角色服務,則會向 Windows 防火牆中添加一個規則以允許端口 80 上的 HTTP 通信以及端口 443 上的 HTTPS 通信。這些規則作為“萬維網服務 HTTP 接入”和“萬維網服務 HTTPS 接入”出現在 Windows 防火牆列表中。它們會自動啟用。
如果安裝與 FTP 有關的角色服務,則會向 Windows 防火牆中添加一個規則以允許端口 21 上的 FTP 通信。該規則作為“FTP 服務器接入”出現在 Windows 防火牆列表中。它會自動啟用。
如果安裝管理服務,則會向 Windows 防火牆中添加一個規則,以允許端口 8172 上服務的通信。該規則作為“Web 管理服務接入”出現在 Windows 防火牆列表中。它必須由服務器管理員啟用。
哪些現有功能將發生更改?
配置
IIS 7.0 引入了一些對存儲和訪問配置數據的方式的主要改進。IIS 7.0 版本的主要目標之一就是啟用 IIS 設置的分布式配置,這允許管理員在與代碼和內容一起存儲的文件中指定 IIS 配置設置。
為什麼此更改非常重要?
分布式配置使管理員能夠在與代碼或內容的相同目錄中指定網站或應用程序的配置設置。通過在單個文件中指定配置設置,分布式配置允許管理員委派網站或 Web 應用程序的所選功能的管理,以便其他人(例如,應用程序開發人員)可以修改這些功能。管理員還可以鎖定特定的配置設置,以便其他任何人都無法更改這些設置。
隨著應用程序從開發階段進入測試階段以及最終進入生產階段,可以使用分布式配置將特定站點或應用程序的配置設置從一台計算機複製到另一台計算機。分布式配置還能夠跨服務器場(其中所有服務器都從一個文件服務器檢索配置設置和內容)共享一個站點或應用程序的配置。
工作方式有何不同?
IIS 7.0 配置基於現有的 .NET Framework 配置存儲,該存儲能夠將 IIS 配置設置以及 ASP.NET 配置存儲在 Web.config 文件中。此更改為可以通過一組常用的 API 進行訪問並且采用一致格式進行存儲的所有 Web 平台配置設置提供了一個配置存儲。IIS 7.0 配置係統也是完全可擴展的係統,因此開發人員可以擴展配置存儲以包含自定義配置,自定義配置的保真度和優先級與 IIS 配置相同。
IIS 7.0 將全局或計算機範圍的配置存儲在名為 ApplicationHost.config 文件的 %windir%\system32\inetsrv 目錄中。在該文件中,有兩個主要的配置部分組:
system.applicationHost
system.webServer
system.applicationHost 部分組包含站點、應用程序、虛擬目錄以及應用程序池的配置。system.webServer 部分組包含所有其他設置(包括全局 Web 默認值)的配置。
還可以使用<位置>標記將 URL 特定配置存儲在 ApplicationHost.config 中。IIS 7.0 還可以讀取服務器上網站和應用程序的代碼或內容目錄中的 URL 特定配置以及 ASP.NET 配置並將其寫入到 Web.config 文件中。
如何解決這些問題?對此更改應做哪些準備工作?
由於 Windows Server 2008 是主要版本,因此您應該花一些時間使自己熟悉這些新的配置選項。
盡管 IIS 7.0 設計為具有兼容性(請參閱我是否需要更改任何現有代碼?部分),但在 IIS 7.0 下進入生產之前,還是應該對目前在 IIS 6.0 下運行的生產網站和 WCF 服務進行全麵測試
如果您使用的是自定義 IIS 6.0 命令行腳本,可能希望將其轉換為 IIS 7.0。請參閱本主題後麵的我是否需要更改任何現有代碼?部分。
管理工具
IIS 7.0 引入了以下完全重寫的新管理工具,用於管理 IIS:
IIS 管理器的圖形用戶界麵
命令行工具 appcmd.exe
基於支持直接編輯設置的 .NET Framework 2.0 配置存儲的配置存儲
可以讀取或更改配置存儲中的設置的 WMI 提供程序
管理接口 Microsoft.Web.Administration,它顯示的信息與 WMI 提供程序顯示的信息相同
此外,Windows Server 2008 還附帶 IIS 6.0 MMC 管理單元以支持遠程管理並管理 FTP 站點。
可以單獨安裝管理工具和 Web 服務器組件。
IIS 7.0 還包含一個新的 WMI 提供程序,該提供程序擴大了所有 IIS 和 ASP.NET 配置的腳本訪問範圍。
Microsoft.Web.Administration 接口提供了一個強類型的管理接口,用於檢索由 WMI 腳本顯示的相同數據。
IIS 6.0 命令行腳本也已經替換為新的功能強大的命令行工具 appcmd.exe。
為什麼此更改非常重要?
新的管理工具完全支持管理職責的分布式配置和委派。委派可以是非常特定的,從而允許管理員針對各個情況精確地確定委派的功能。
工作方式有何不同?有任何依存關係嗎?
新的管理工具完全支持新的 IIS 7.0 分布式配置。它們還允許委派各個站點和應用程序的配置的訪問權限(非管理權限)。管理工具支持非管理員,甚至使用非 Windows 憑據對特定站點或應用程序進行身份驗證,以及僅管理該作用域的配置。
新的 IIS 管理器 UI 支持通過 HTTP 的遠程管理,從而允許無縫地本地、遠程、甚至跨 Internet 的管理,而不需要在防火牆上打開 DCOM 或其他管理端口。
管理工具是完全可擴展的,從而使開發人員能夠使用 .NET Framework 構建新的管理模塊以輕鬆插入新的管理用戶界麵模塊中,這些新的管理用戶界麵模塊的工作方式與 IIS 7.0 附帶的模塊的工作方式一樣透明。
核心服務器
IIS 7.0 核心 Web 服務器包含對 IIS 6.0 的一些基本更改。例如,本機代碼和托管代碼都通過一個請求管道進行處理。此外,IIS 7.0 還采用了一個可以根據您的需要在其中添加或刪除組件(稱為模塊)的 Web 服務器引擎。
為什麼此更改非常重要?
這些更改能夠大大減少受攻擊麵,提高了可擴展性並且增加了對通過創建托管代碼模塊來擴展 IIS 7.0 核心功能的支持。新的工作進程 Web 核心還提供了對請求管道中所有通知事件的訪問權限。集成的等級是前所未有的,並且允許對所有類型的 Web 內容使用現有的 ASP.NET 功能(如基於表單的身份驗證或 URL 身份驗證)。
工作方式有何不同?
在以前版本的 IIS 中,默認情況下內置了所有功能,並且沒有簡單的方法可以擴展或替換該功能的任何部分。但是,IIS 7.0 核心分成了 40 多個獨立的功能模塊。該核心還包括用於構建核心服務器模塊的新的 Win32 API。核心服務器模塊是 Internet 服務器應用程序編程接口 (ISAPI) 篩選器和擴展的新的、功能更強大的替代品,但這些篩選器和擴展在 IIS 7.0 中仍然受支持。
由於開發了所有 IIS 核心服務器功能以便 IIS 7.0 可以使用新的 Win32 API 並且作為不連續的功能模塊,因此您可以添加、刪除、甚至替換 IIS 功能模塊。
IIS 7.0 還包含對使用 .NET Framework 開發核心 Web 服務器擴展的支持。IIS 7.0 已經集成了 ASP.NET 的現有 IHttpModule API,從而使您的托管代碼模塊能夠針對所有請求訪問請求管道中的所有事件。
如何解決這些問題?
請參閱本主題的我是否需要更改任何現有代碼?部分,特別是在使用 ISAPI 篩選器時非常有用。
診斷
IIS 7.0 包含兩項重大改進,這些改進有助於對錯誤網站和應用程序進行診斷和疑難解答。
為什麼此功能非常重要?
IIS 7.0 中的診斷和疑難解答的更改允許開發人員或管理員實時查看服務器上運行的請求。現在,可以篩選難以再現的錯誤條件並且用詳細的跟蹤日誌來自動捕獲錯誤。
工作方式有何不同?
IIS 7.0 引入了一個新的運行時狀態和控製 API,它提供有關應用程序池、工作進程、站點、應用程序域,甚至運行請求的實時狀態信息。
該信息通過本機組件對象模型 (COM) API 來顯示。API 自身被封裝並通過新的 IIS WMI 提供程序 appcmd.exe 和 IIS 管理器來顯示。這樣可以允許用戶快速方便地檢查 Web 服務器狀態,而不考慮所使用的管理環境如何。
IIS 7.0 在整個請求和響應路徑中還包含詳細的跟蹤事件,從而允許開發人員在請求前進到 IIS,並通過 IIS 請求處理管道進入任何現有頁麵級別的代碼,然後停止到響應時跟蹤請求。使用這些詳細的跟蹤事件,開發人員不但可以了解請求路徑和提升為請求結果的任何錯誤信息,而且還可以了解使用的時間和幫助解決所有類型的錯誤的其他調試信息以及係統停止響應的時間。
若要啟用這些跟蹤事件的收集,可以將 IIS 7.0 配置為根據使用的時間或者錯誤響應代碼自動捕獲任何給定請求的完整跟蹤日誌。
我是否需要更改任何現有代碼?
IIS 7.0 構建為與現有版本兼容。所有現有 ASP、ASP.NET 1.1 和 ASP.NET 2.0 應用程序都可以在 IIS 7.0 上運行,而無需更改任何代碼(使用兼容的 ISAPI 支持)。
所有現有的 ISAPI 擴展和大多數 ISAPI 篩選器也將繼續工作,沒有什麼變化。但是,IIS 7.0 中不支持依賴於 READ RAW DATA 通知的 ISAPI 篩選器。
對於現有的 Active Directory(R) 服務界麵 (ADSI) 和 WMI 腳本,IIS 7.0 將提供與以前版本相同的功能,從而使它們能夠直接針對新的配置存儲運行。
Windows Server 2008 的所有版本中是否都提供此服務器角色?
在 Windows Server 的所有版本中都可以使用 IIS 7.0。各個版本之間的功能沒有差別。IIS 7.0 可用於 32 位和 64 位平台。
最後更新:2017-04-02 17:09:28