国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 編程設計 > 正文

VS2013無法啟動 IIS Express Web解決方法

2020-06-27 14:15:00
字體:
來源:轉載
供稿:網友

開發環境:windows8.1+VS2013

使用VS2013有一段時間了,因前期都是編寫C/S程序,沒有使用到B/S調試器。前幾日,創建了一個MVC項目,突然發現VS2013無法調試,報了這樣的錯。

VS2013,IIS,Express

一下子有點蒙,why?

國外網友給出的解決方案

If you are working on ASP.NET MVC web sites in Visual Studio 2013 (VS2013), you need to make one registry change if you want to run IIS Express as a 64-bit process by default. Use one of the methods, below.

Command-Line:

reg add HKEY_CURRENT_USER/Software/Microsoft/VisualStudio/12.0/WebProjects /v Use64BitIISExpress /t REG_DWORD /d 1

Regedit:

Navigate to:
HKEY_CURRENT_USER/Software/Microsoft/VisualStudio/12.0/WebProjects
Make sure there is a REG_DWORD value named “Use64BitIISExpress”. If not, create it.
Set its value from 1 (default = 0).
我通過上面的方法成功解決了

 修改項目屬性的Web項,如下。

VS2013,IIS,Express

F5運行,仍然出錯。

VS2013,IIS,Express

 

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

VS2013,IIS,Express

 

F5運行,問題依舊。

 

問題焦點已經很清楚了,就是IIS Express未能啟動。于是想到查看事件,看有沒有記錄更具體的日志。

VS2013,IIS,Express

 

相關的事件有三條,前兩條相同,分別如下。

VS2013,IIS,Express

 

VS2013,IIS,Express

 

怎么和iisnode有關系,我們知道,iisnode是集成在IIS中用于托管node.js應用程序來取代自托管node.exe進程的一個模塊。

“C:/Program Files (x86)/iisnode-dev/release/x86/iisnode.dll”根本就不存在,這下更加暈了。為什么IIS Express會啟動失敗還是不清楚。

我決定要徹底搞清楚IIS Express到底是什么東西。

 

===============================華麗分割線==============================

 

當前程序員只能通過下面兩種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開發服務器和IIS的工作方式。

ASP.NET開發服務器

Visual Studio自帶的ASP.NET開發服務器(開發代號“Cassini”)的優勢在于簡練和便于快速啟動。它不需要監聽遠程連接請求(因此在大部分企業的安全網絡環境中都可以使用它),你甚至都不需要使用管理員賬號就能啟動它,而且它也不要求額外的安裝步驟。

正是因為具備啟動方便這一巨大優勢,才使得它成為ASP.NET項目的默認服務器,當你在Visual Studio中按下F5時就會啟動它。

VS2013,IIS,Express

但ASP.NET開發服務器的缺點是它不提供完整的Web服務器功能。比如說,它不支持SSL,URL重寫規則,自定義安全設置,和其它在IIS 7中支持的功能。

IIS Web服務器

用Visual Studio運行和測試程序還有第二個選擇— IIS。你可以通過右鍵單擊Visual studio中的Web項目,打開它的屬性(在屬性窗口中單擊“Web”標簽)來配置Web工程使用IIS。

VS2013,IIS,Express

使用IIS作為你的開發服務器允許你測試完整的Web服務器具備的功能(SSL,URL重寫規則等)。IIS是一個貨真價實的Web服務器—這意味著和在作業服務器上部署差不多開發環境。

但是采用IIS的缺點是,有些公司并不允許在開發機上安裝完整的Web服務器。IIS還要求使用管理員帳號來安裝和調試網站。不同版本的Windows又支持不同版本的IIS。例如,在Windows XP上,你只能使用自帶的IIS 5.1—所有IIS 7.x的新功能它都不支持。另外,在VS里配置網站項目使用IIS,還得一些額外的安裝和配置步驟。

IIS Express — “魚”和“熊掌”兼得

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的整合

Visual Studio 2010的SP1引入了IIS Express支持。你將可以配置VS 2010使用它取代ASP.NET開發服務器作為ASP.NET項目默認的Web服務器。跟現在的ASP.NET開發服務器一樣,你不需要在IIS Express里注冊站點或者虛擬目錄。它支持和ASP.NET開發服務器相同的使用方法——只是添加了更多的功能而已。

當你按下F5來運行ASP.NET項目時,Visual Studio自動啟動IIS Express并且使用它來運行和調試網站程序(不需要額外的配置)。跟ASP.NET開發服務器一樣,IIS Express運行時,會在任務欄的通知區域顯示一個小圖標:

VS2013,IIS,Express

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

VS2013,IIS,Express

[備注:上圖IIS Express為英文版]

請注意上圖中兩個很酷的地方:

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程序)。最好不過的是—你不需要改動任何代碼來使用它。你將可以在所有已有的項目中選用它。

針對VS2010發布SP1補丁程序,這個補丁程序將用IIS Express替換掉原來內置的ASP.NET開發服務器。后續版本的Visual Studio都內置了IIS Express。

======================================華麗分割線====================================

 

既然VS2013都內置了IIS Express8.0,為什么又會出現啟動失敗的情況呢

在IIS Express的下載頁面似乎找到了答案,

VS2013,IIS,Express

 

看到WebMatrix沒,以前用過它的2.0版,它的任務欄圖標和IISExpress是相同的呢,莫非要安裝它。

安裝WebMatrix3.0后,打開項目,F5啟動,問題解決!

 

VS2013,IIS,Express

 

============================================= 2014-6-26 更新 ==================================

在此感謝@斷紅深處的回復,終于找到原因了。

首先,我們之前調試報錯是因為注冊表中缺少這一項“Use64BitIISExpress”,安裝WebMatrix3.0會在注冊表中默認寫入這一項。不管是調試32位還是64位,

這一項對于啟動IIS Express來說是關鍵。下面我們來討論一下怎么調試64位的Web程序。
 

如下,把目標平臺設置為64位。

VS2013,IIS,Express

如果按照默認方式啟動是會報如下錯誤的。

“未能加載文件或程序集“MvcApplication2”或它的某一個依賴項。試圖加載格式不正確的程序。”

如果我們想在Visual Studio2013上調試64位ASP.NET MVC的網站(本機環境X64),需要把IIS Express設置成默認的64位開發服務器。

我們可以通過修改注冊表來進行設置,方法如下:

1.通過命令行直接寫入:

“reg add HKEY_CURRENT_USER/Software/Microsoft/VisualStudio/12.0/WebProjects /v Use64BitIISExpress /t REG_DWORD /d 1”

拷貝上面的命令行到記事本中,保存后修改后綴名為bat或cmd,雙擊運行即可。

2.第二種方法是手動添加鍵值:

打開“運行”,輸入“RegEdit”回車打開注冊表編輯器。

定位到:“HKEY_CURRENT_USER/Software/Microsoft/VisualStudio/12.0/WebProjects”

確保有一個名為“Use64BitIISExpress”REG_DWORD值。如果沒有,請創建它。

修改該項的基數為16進制的數值數據值為1(默認值=0)。現在,您可以調試64位的網站了。(PS:這里值為0時則只能調試32位的網站。)

VS2013,IIS,Express

 

完成上面的修改后,你還需要確認下面這一項已經勾選。

VS2013,IIS,Express

 

修改完成,按F5成功運行網站程序后,我們可以在任務管理器的進程項中看到IIS Express的進程后不帶32的字樣,說明當前啟動的為64位。下面附兩張圖作對比:

VS2013,IIS,Express

上圖:32位

 

VS2013,IIS,Express

上圖:64位

 

需要注意的是,需改完注冊表的值后需要重啟Visual Studio2013,并且是以管理員的權限啟動,不然會報下面的錯。

“未能加載文件或程序集“Antlr3.Runtime.DLL”或它的某一個依賴項。拒絕訪問。”

OK,現在我們可以正常的調試64位Web程序了。

 

參考:

Debugging VS2013 Websites Using 64-bit IIS Express
Can't get IIS Express 8 beta to run website as 64-bit process

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 沙雅县| 秀山| 司法| 安福县| 永福县| 商洛市| 伽师县| 盐津县| 芜湖市| 阜康市| 隆安县| 泰州市| 高碑店市| 锦屏县| 综艺| 盐城市| 阳曲县| 西藏| 沛县| 凌源市| 迁西县| 汉寿县| 永年县| 长垣县| 黄骅市| 崇阳县| 合阳县| 象山县| 集安市| 江门市| 盐津县| 江门市| 郓城县| 沅陵县| 黄石市| 永康市| 呈贡县| 伊宁县| 三江| 四平市| 义乌市|