
不要勾選【覆蓋應用程序根URL(U)】,或讓【覆蓋應用程序根URL(U)】下面的輸入框和上面的輸入框的地址一樣!
使用VS2013有一段時(shí)間了,因前期都是編寫(xiě)C/S程序,沒(méi)有使用到B/S調試器。前幾日,創(chuàng )建了一個(gè)MVC項目,突然發(fā)現VS2013無(wú)法調試,報了這樣的錯。

一下子有點(diǎn)蒙,why?
修改項目屬性的Web項,如下。

F5運行,仍然出錯。

這時(shí)候我知道了是Web調試器沒(méi)有啟動(dòng),但是卻不明白為什么。于是檢查IIS8.5的安裝情況,把一些可能需要安裝的都給裝了。

F5運行,問(wèn)題依舊。
問(wèn)題焦點(diǎn)已經(jīng)很清楚了,就是IIS Express未能啟動(dòng)。于是想到查看事件,看有沒(méi)有記錄更具體的日志。

相關(guān)的事件有三條,前兩條相同,分別如下。


怎么和iisnode有關(guān)系,我們知道,iisnode是集成在IIS中用于托管node.js應用程序來(lái)取代自托管node.exe進(jìn)程的一個(gè)模塊。
“C:\Program Files (x86)\iisnode-dev\release\x86\iisnode.dll”根本就不存在,這下更加暈了。為什么IIS Express會(huì )啟動(dòng)失敗還是不清楚。
我決定要徹底搞清楚IIS Express到底是什么東西。
===============================華麗分割線(xiàn)==============================
當前程序員只能通過(guò)下面兩種web服務(wù)器之一來(lái)開(kāi)發(fā)和測試ASP.NET網(wǎng)站程序:
1. Visual Studio自帶的ASP.NET開(kāi)發(fā)服務(wù)器(webdev.exe)。
2. Windows自帶的IIS Web服務(wù)器。
上面兩個(gè)方案各有優(yōu)缺點(diǎn),而且很多ASP.NET程序員告訴我們:“我希望有一個(gè)像ASP.NET開(kāi)發(fā)服務(wù)器那樣容易使用,但是功能又跟IIS一樣強大的服務(wù)器”。今天我很高興地宣布,我們將提供另一個(gè)新的、免費的、綜合了前兩個(gè)方案的優(yōu)點(diǎn)的選擇—IIS Express,它的出現使得開(kāi)發(fā)和運行ASP.NET網(wǎng)站程序變得更為容易。
IIS Express支持VS 2010和Visual Web Develop 2010 Express,可以運行在Windows XP和更高的版本上,它不需要管理員權限即可運行,也不要求代碼做任何的改動(dòng)。你可以用它開(kāi)發(fā)所有類(lèi)型的ASP.NET程序,而且它還支持完整的IIS 7.x功能集。
現有方案
在詳細介紹IIS Express之前,我們先來(lái)看看ASP.NET開(kāi)發(fā)服務(wù)器和IIS的工作方式。
ASP.NET開(kāi)發(fā)服務(wù)器
Visual Studio自帶的ASP.NET開(kāi)發(fā)服務(wù)器(開(kāi)發(fā)代號“Cassini”)的優(yōu)勢在于簡(jiǎn)練和便于快速啟動(dòng)。它不需要監聽(tīng)遠程連接請求(因此在大部分企業(yè)的安全網(wǎng)絡(luò )環(huán)境中都可以使用它),你甚至都不需要使用管理員賬號就能啟動(dòng)它,而且它也不要求額外的安裝步驟。
正是因為具備啟動(dòng)方便這一巨大優(yōu)勢,才使得它成為ASP.NET項目的默認服務(wù)器,當你在Visual Studio中按下F5時(shí)就會(huì )啟動(dòng)它。

但ASP.NET開(kāi)發(fā)服務(wù)器的缺點(diǎn)是它不提供完整的Web服務(wù)器功能。比如說(shuō),它不支持SSL,URL重寫(xiě)規則,自定義安全設置,和其它在IIS 7中支持的功能。
IIS Web服務(wù)器
用Visual Studio運行和測試程序還有第二個(gè)選擇— IIS。你可以通過(guò)右鍵單擊Visual studio中的Web項目,打開(kāi)它的屬性(在屬性窗口中單擊“Web”標簽)來(lái)配置Web工程使用IIS。

使用IIS作為你的開(kāi)發(fā)服務(wù)器允許你測試完整的Web服務(wù)器具備的功能(SSL,URL重寫(xiě)規則等)。IIS是一個(gè)貨真價(jià)實(shí)的Web服務(wù)器—這意味著(zhù)和在作業(yè)服務(wù)器上部署差不多開(kāi)發(fā)環(huán)境。
但是采用IIS的缺點(diǎn)是,有些公司并不允許在開(kāi)發(fā)機上安裝完整的Web服務(wù)器。IIS還要求使用管理員賬號來(lái)安裝和調試網(wǎng)站。不同版本的Windows又支持不同版本的IIS。例如,在Windows XP上,你只能使用自帶的IIS 5.1—所有IIS 7.x的新功能它都不支持。另外,在VS里配置網(wǎng)站項目使用IIS,還得一些額外的安裝和配置步驟。
IIS Express — “魚(yú)”和“熊掌”兼得
IIS Express綜合了ASP.NET開(kāi)發(fā)服務(wù)器易用性的優(yōu)勢和IIS強大的功能。確切地說(shuō):
它簡(jiǎn)練并且易于安裝(文件大小不到10兆而且安裝速度相當快)。
在Visual Studio中不需要管理員權限即可啟動(dòng)和調試程序。
提供了完整的Web服務(wù)器功能——包括SSL, URL重寫(xiě),多媒體支持和所有其他的IIS 7.x模塊。
它的可擴展模型和web.config配置結構和IIS 7.x是一樣的。
它可以和IIS Web服務(wù)器還有ASP.NET開(kāi)發(fā)服務(wù)器同時(shí)運行在同一臺機器上(他們不會(huì )相互沖突)。
它支持Windows XP及更高版本的操作系統—在所有操作系統平臺上提供了完整的IIS 7.x功能集。
IIS Express(跟ASP.NET開(kāi)發(fā)服務(wù)器一樣)可以快速地從硬盤(pán)上的某個(gè)文件夾上啟動(dòng)網(wǎng)站程序。它不需要任何注冊或配置步驟。在網(wǎng)站開(kāi)發(fā)過(guò)程中,這個(gè)特性使啟動(dòng)和運行網(wǎng)站顯得相當便捷。
與VS的整合
Visual Studio 2010的SP1引入了IIS Express支持。你將可以配置VS 2010使用它取代ASP.NET開(kāi)發(fā)服務(wù)器作為ASP.NET項目默認的Web服務(wù)器。跟現在的ASP.NET開(kāi)發(fā)服務(wù)器一樣,你不需要在IIS Express里注冊站點(diǎn)或者虛擬目錄。它支持和ASP.NET開(kāi)發(fā)服務(wù)器相同的使用方法——只是添加了更多的功能而已。
當你按下F5來(lái)運行ASP.NET項目時(shí),Visual Studio自動(dòng)啟動(dòng)IIS Express并且使用它來(lái)運行和調試網(wǎng)站程序(不需要額外的配置)。跟ASP.NET開(kāi)發(fā)服務(wù)器一樣,IIS Express運行時(shí),會(huì )在任務(wù)欄的通知區域顯示一個(gè)小圖標:

右鍵單擊上面的圖標并選擇“退出”就可以快速關(guān)閉IIS Express。你也可以通過(guò)右鍵單擊來(lái)列出正在運行的站點(diǎn)列表,還有站點(diǎn)的文件夾路徑以及使用的.NET版本:

[備注:上圖IIS Express為英文版]
請注意上圖中兩個(gè)很酷的地方:
1. 正在運行的站點(diǎn)“Test Site”,還有IIS Express本身,保存在硬盤(pán)的c:\users\[用戶(hù)名]文件夾中。這就允許非管理員用戶(hù)使用IIS Express和網(wǎng)站,而且還支持一些現在的IIS服務(wù)器沒(méi)有辦法實(shí)現的場(chǎng)景(例如可以在受限的企業(yè)網(wǎng)絡(luò )環(huán)境或受限的學(xué)校公共電腦上運行IIS Express)。
2. 上面正在運行的站點(diǎn)“Test Site”同時(shí)支持HTTP和HTTPS的訪(fǎng)問(wèn)方式。IIS Express通過(guò)自動(dòng)安裝“自簽名證書(shū)”來(lái)支持URL訪(fǎng)問(wèn)控制列表(URL ACL)和SSL認證,這樣程序員(以非管理員用戶(hù)登錄電腦)可以在不需要提升用戶(hù)權限,或執行額外設置的情況下就可以使用SSL。這個(gè)功能允許你在程序中為SSL設置需要保護的頁(yè)面(比如登錄頁(yè)面),并且在開(kāi)發(fā)過(guò)程中象在真實(shí)的web服務(wù)器里那樣運行和測試這些頁(yè)面。
IIS 7.x功能集
IIS Express就像你現在已經(jīng)熟悉的ASP.NET開(kāi)發(fā)服務(wù)其那樣容易啟動(dòng)和使用。 但是因為IIS Express是基于與IIS 7x相同的代碼,你可以用到完整Web服務(wù)器的功能集合。這也就意味著(zhù)你可以像在真實(shí)的作業(yè)Web服務(wù)器上創(chuàng )建和運行你的程序。除了SSL,你還可以使用 IIS 7.x的URL重寫(xiě)模塊、多媒體插件、動(dòng)態(tài)內容壓縮、高級日志功能、自定義安全策略和其他豐富多彩的模塊。
除了支持ASP.NET以外,IIS Express還支持傳統的ASP和其他被IIS支持的文件類(lèi)型—這也使得它成為整合多種技術(shù)的站點(diǎn)的理想平臺。
總結
IIS Express使得開(kāi)發(fā)、運行和測試Web程序更加容易。它支持ASP.NET的所有版本和所有應用程序類(lèi)型(包括ASP.NET Web窗體程序和ASP.NET MVC程序)。最好不過(guò)的是—你不需要改動(dòng)任何代碼來(lái)使用它。你將可以在所有已有的項目中選用它。
針對VS2010發(fā)布SP1補丁程序,這個(gè)補丁程序將用IIS Express替換掉原來(lái)內置的ASP.NET開(kāi)發(fā)服務(wù)器。后續版本的Visual Studio都內置了IIS Express。
======================================華麗分割線(xiàn)====================================
既然VS2013都內置了IIS Express8.0,為什么又會(huì )出現啟動(dòng)失敗的情況呢
在IIS Express的下載頁(yè)面似乎找到了答案,

看到WebMatrix沒(méi),以前用過(guò)它的2.0版,它的任務(wù)欄圖標和IISExpress是相同的呢,莫非要安裝它。
安裝WebMatrix3.0后,打開(kāi)項目,F5啟動(dòng),問(wèn)題解決!

VS2012 無(wú)法啟動(dòng)IIS Express Web服務(wù)器的解決方案
打開(kāi)VS2012解決方案資源管理器 -> 點(diǎn)選 Web 項目選擇 -> 屬性 -> Web -> 選擇“使用 Visual Studio 開(kāi)發(fā)服務(wù)器” -> 選中“自動(dòng)分配端口” 。
再次運行Web項目,大功告成!

聯(lián)系客服