2010-04-17 139 views
60

我想在Windows 7上運行IIS下ASP.NET MVC 2的Web應用程序中運行ASP.NET MVC 2的Web應用程序,但我得到一個錯誤403.14。下面是步驟來重現:無法在IIS 7.5

  1. 打開Visual Studio 2010
  2. 創建一個新的ASP.NET MVC 2的項目稱爲MvcApplication1
  3. Shift + F5運行應用程序。您應該看到http://localhost:{random_port}/,頁面將正確呈現。
  4. 點擊MvcApplication1,並選擇 「屬性」。轉到「Web」部分。
  5. 選擇「使用本地IIS Web服務器」並創建一個虛擬目錄。
  6. 保存。
  7. Shift + F5運行該應用程序。您應該看到http://localhost/MvcApplication1/和IIS錯誤HTTP Error 403.14 - Forbidden The Web server is configured to not list the contents of this directory.

很顯然,無論出於何種原因,ASP.NET路由工作不正常。

事情我已經想到和嘗試:

  • 驗證所有的IIS功能在啓用「啓用Windows功能打開或關閉」。
  • 確認默認網站配置爲使用.NET 4.0
  • 通過v4.0.30319目錄中的aspnet_regiis -i重新分配的ASP.NET v4 scrip映射。

這裏是最驚人的部分 - 這是一個剛開始建機上。 Windows 7 x64 Ultimate的全新副本,Visual Studio 2010 Premium的全新安裝,沒有其他網站,也沒有其他工作。

其他我可以試試嗎?

Setting Visual Studio to use local IIS web server http://i41.tinypic.com/11j176b.png

回答

84

OK,這是解決對我來說,通過執行以下操作:

32位目錄c:\Windows\Microsoft.NET\Framework\v4.0.30319運行aspnet_regiis -i

在這一點上,我不明白爲什麼64位模式不工作,但我現在已經暢通無阻。希望這可以幫助任何有此問題的人。

+0

我希望它也能幫助我...我現在就試試你的方式 – 2010-05-05 15:20:05

+0

這讓我發瘋,多麼沮喪......現在已經修好了。歡呼 – 2010-05-24 12:57:39

+0

你應該接受你自己的答案,因爲這是解決方案。順便說一句,非常感謝!這節省了我很多時間。 – Alex 2010-09-04 11:39:56

0

我一直使用VS 2008中,自定義服務器設置仍然讓我沒有任何問題進行調試。不知道它的工作原理有什麼不同,2010年

45

我有完全一樣的問題,所以感謝您的幫助。

但是...你嘗試在Visual Studio 64位命令提示符(有管理員權限)運行aspnet_regiis -i命令?當我這樣做時,它將其固定爲64位模式。

爲了澄清,我右點擊Visual Studio x64 Win64 Command Prompt (2010),並選擇以管理員身份運行。然後我就在這裏:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319 

而且這樣做:aspnet_regiis -i

而現在它完美的作品。

+3

工作很好,謝謝! – BigJoe714 2010-10-13 01:00:18

+1

這工作很好,並節省了我很多時間,謝謝。 – 2010-12-23 13:32:36

+1

@Dommer - 非常棒,謝謝! – 2013-03-28 14:56:50

25

另外請確保您的配置文件具有以下行,否則路由將無法工作。

<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"/> 
</system.webServer> 
+2

VS 2012使用本地IIS(不是IIS Express),這就是答案。謝謝。 – 2012-09-10 20:24:21

+0

適用於我 – 2012-11-20 17:11:04

+1

沒有幫助我:/ – Ortund 2013-02-20 20:43:45

7

另一件事要注意,確保應用程序池設置爲一體,而不是經典

+0

我真的愛你! – Exitos 2011-11-04 19:33:20

0

我有這些症狀;我的Global.asax崩潰了。修復了崩潰,現在一切正在運行。

+0

我意外地排除了我的部署和(杜)部署它解決了我的問題。 – Chris 2014-10-21 21:26:44

7

請勿使用runAllManagedModulesForAllRequests。您想讓IIS處理圖像等資源。

<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"/> 
</system.webServer> 

而是添加MVC路由模塊

<system.webServer> 
    <modules> 
    <remove name="UrlRoutingModule-4.0" /> 
    <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" /> 
    </modules> 
</system.webServer> 
+0

這是解決問題的更好方法。 – Scott 2013-06-07 20:17:12

2

我IIS8 /在Windows Server上同樣的問題2012年無許多提出的解決方案的工作,直到我嘗試以下。

dism /online /enable-feature /featurename:IIS-ASPNET45 /All 

沒有'/ All'開關,它抱怨沒有安裝父功能。

奇怪的是,根據Windows'打開或關閉Windows功能設施,asp.net 4.5已經安裝。

沒有必要對web.config進行任何更改,添加或刪除模塊。