當前程序員只能通過下面兩種Web服務器之一來開發和測試ASP.NET網站程序:
1. Visual Studio自帶的ASP.NET開發服務器(webdev.exe)。
2. Windows自帶的IIS Web服務器。
上面兩個方案各有優缺點,而且很多ASP.NET程序員告訴我們:“我希望有一個像ASP.NET開發服務器那樣容易使用,但是功能又跟IIS一樣強大的服務器”。今天我很高興地宣布,我們將提供另一個新的、免費的、綜合了前兩個方案的優點的選擇—IIS Express,它的出現使得開發和運行ASP.NET網站程序變得更為容易。
IIS Express支持VS 2010和Visual Web Develop 2010 Express,可以運行在Windows XP和更高的版本上,它不需要管理員權限即可運行,也不要求代碼做任何的改動。你可以用它開發所有類型的ASP.NET程序,而且它還支持完整的IIS 7.x功能集。
現有方案
在詳細介紹IIS Express之前,我們先來看看ASP.NET開發服務器 [i]和IIS的工作方式。
ASP.NET開發服務器
Visual Studio自帶的ASP.NET開發服務器(開發代號“Cassini”)的優勢在於簡練和便於快速啟動。它不需要監聽遠程連接請求(因此在大部分企業的安全網絡環境中都可以使用它),你甚至都不需要使用管理員賬號就能啟動它,而且它也不要求額外的安裝步驟。
正是因為具備啟動方便這一巨大優勢,才使得它成為ASP.NET項目的默認服務器,當你在Visual Studio中按下F5時就會啟動它。
但ASP.NET開發服務器的缺點是它不提供完整的Web服務器功能。比如說,它不支持SSL,URL重寫規則(例如我在這篇 博客提到的 SEO URL重寫規則),自定義安全設置,和其它在IIS 7中支持的功能。
IIS Web服務器
用Visual Studio運行和測試程序還有第二個選擇— IIS。你可以通過右鍵單擊Visual studio中的Web項目,打開它的屬性(在屬性窗口中單擊“Web”標簽)來配置Web工程使用IIS。
使用IIS作為你的開發服務器允許你測試完整的Web服務器具備的功能(SSL,URL重寫規則等)。IIS是一個貨真價實的Web服務器—這意味着和在作業服務器上部署差不多開發環境。
但是采用IIS的缺點是,有些公司並不允許在開發機上安裝完整的Web服務器。IIS還要求使用管理員帳號來安裝和調試網站。不同版本的Windows又支持不同版本的IIS。例如,在Windows XP上,你只能使用自帶的IIS 5.1—所有IIS 7.x的新功能它都不支持。另外,在VS里配置網站項目使用IIS,還得一些額外的安裝和配置步驟。
IIS Express — “魚”和“熊掌”兼得
我們正在為IIS 7.x加點專為開發場景而優化的新風味,也就是“IIS Express”。我認為它綜合了ASP.NET開發服務器易用性的優勢和IIS強大的功能。確切地說:
- 它簡練並且易於安裝(文件大小不到10兆而且安裝速度相當快)。
- 在Visual Studio中不需要管理員權限即可啟動和調試程序。
- 提供了完整的Web服務器功能—包括SSL, URL重寫,多媒體支持和所有其他的IIS 7.x模塊。
- 它的可擴展模型和web.config配置結構和IIS 7.x是一樣的。
- 它可以和IIS Web服務器還有ASP.NET開發服務器同時運行在同一台機器上(他們不會相互沖突)。
- 它支持Windows XP及更高版本的操作系統—在所有操作系統平台上提供了完整的IIS 7.x功能集。
IIS Express(跟ASP.NET開發服務器一樣)可以快速地從硬盤上的某個文件夾上啟動網站程序。它不需要任何注冊或配置步驟。在網站開發過程中,這個特性使啟動和運行網站顯得相當便捷。
與VS 2010的整合
我們正在努力使IIS Express在Visual Studio 2010中能夠更加容易使用。你將可以配置VS 2010使用它取代ASP.NET開發服務器作為ASP.NET項目默認的Web服務器。跟現在的ASP.NET開發服務器一樣,你不需要在IIS Express里注冊站點或者虛擬目錄。它支持和ASP.NET開發服務器相同的使用方法—只是添加了更多的功能而已。
當你按下F5來運行ASP.NET項目時,Visual Studio自動啟動IIS Express並且使用它來運行和調試網站程序(不需要額外的配置)。跟ASP.NET開發服務器一樣,IIS Express運行時,會在任務欄的通知區域顯示一個小圖標:
右鍵單擊上面的圖標並選擇“退出”就可以快速關閉IIS Express。你也可以通過右鍵單擊來列出正在運行的站點列表,還有站點的文件夾路徑以及使用的.NET版本:
[譯注:IIS Express尚在Beta階段,暫時還沒有中文版,因此將英文原圖貼上]
請注意上圖中兩個很酷的地方:
1. 正在運行的站點“Test Site”,還有IIS Express本身,保存在硬盤的c:\users\[用戶名]文件夾中。這就允許非管理員用戶使用IIS Express和網站,而且還支持一些現在的IIS服務器沒有辦法實現的場景(例如可以在受限的企業網絡環境或受限的學校公共電腦上運行IIS Express)。
2. 上面正在運行的站點“Test Site”同時支持HTTP和HTTPS的訪問方式。IIS Express通過自動安裝“自簽名證書”來支持URL訪問控制列表(URL ACL)和SSL認證,這樣程序員(以非管理員用戶登錄電腦)可以在不需要提升用戶權限,或執行額外設置的情況下就可以使用SSL。這個功能允許你在程序中為SSL設置需要保護的頁面(比如登錄頁面),並且在開發過程中象在真實的web服務器里那樣運行和測試這些頁面。
IIS 7.x功能集
IIS Express就像你現在已經熟悉的ASP.NET開發服務其那樣容易啟動和使用。 但是因為IIS Express是基於與IIS 7x相同的代碼,你可以用到完整Web服務器的功能集合。這也就意味着你可以像在真實的作業Web服務器上創建和運行你的程序。除了SSL,你還可以使用 IIS 7.x的URL重寫模塊、多媒體插件、動態內容壓縮、高級日志功能、自定義安全策略和其他豐富多彩的模塊。
除了支持ASP.NET以外,IIS Express還支持傳統的ASP和其他被IIS支持的文件類型—這也使得它成為整合多種技術的站點的理想平台。
總結
我們認為IIS Express使得開發、運行和測試Web程序更加容易。它支持ASP.NET的所有版本和所有應用程序類型(包括ASP.NET Web窗體程序和ASP.NET MVC程序)。最好不過的是—你不需要改動任何代碼來使用它。你將可以在所有已有的項目中選用它。
我們馬上就會發布IIS Express的beta版。在Beta版中,你應該可以右建單擊一個文件夾,並由IIS Express從這個文件夾啟動網站程序。今年晚一些時候,我們還會發布一個VS 2010和Visual Web Developer 2010 Express的補丁程序,這個補丁程序將用IIS Express替換掉原來內置的ASP.NET開發服務器。后續版本的Visual Studio會內置IIS Express