當前程序員只能經過下面兩種Web服務器之一來開發和測試ASP.NET網站程序:程序員
1. Visual Studio自帶的ASP.NET開發服務器(webdev.exe)。web
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中支持的功能。網站
用Visual Studio運行和測試程序還有第二個選擇— IIS。你能夠經過右鍵單擊Visual studio中的Web項目,打開它的屬性(在屬性窗口中單擊「Web」標籤)來配置Web工程使用IIS。url
使用IIS做爲你的開發服務器容許你測試完整的Web服務器具有的功能(SSL,URL重寫規則等)。IIS是一個貨真價實的Web服務器—這意味着和在做業服務器上部署差很少開發環境。
可是採用IIS的缺點是,有些公司並不容許在開發機上安裝完整的Web服務器。IIS還要求使用管理員賬號來安裝和調試網站。不一樣版本的Windows又支持不一樣版本的IIS。例如,在Windows XP上,你只能使用自帶的IIS 5.1—全部IIS 7.x的新功能它都不支持。另外,在VS裏配置網站項目使用IIS,還得一些額外的安裝和配置步驟。
咱們正在爲IIS 7.x加點專爲開發場景而優化的新風味,也就是「IIS Express」。我認爲它綜合了ASP.NET開發服務器易用性的優點和IIS強大的功能。確切地說:
IIS Express(跟ASP.NET開發服務器同樣)能夠快速地從硬盤上的某個文件夾上啓動網站程序。它不須要任何註冊或配置步驟。在網站開發過程當中,這個特性使啓動和運行網站顯得至關便捷。
咱們正在努力使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 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