2012-02-22 79 views
1

我在ASP.NET巫現有項目工作的虛擬路徑是基於包含點使用卡西尼與包含點

http://localhost/My.Awesome.WebClient/ 

這樣的設置工作正常使用集成的Visual Studio的發展探析服務器的文件夾中,但是當我添加MVC內容並嘗試訪問它時失敗(錯誤404資源未找到)。

http://msdn.microsoft.com/en-us/library/ee941656.aspx似乎解釋了這個問題:

如果您在Visual Studio 2010中的文件系統網站,該網站是一個包含一個點在文件夾名稱的文件夾中,URL(。)路由將無法可靠地工作。某些虛擬路徑返回HTTP 404錯誤。這是因爲Visual Studio 2010使用不正確的根虛擬目錄路徑啓動Visual Studio Development Server(Cassini)。

然而,該項目是一個Web項目,而不是一個網站,它只有當我開始使用MVC失敗。

這個問題可以很容易地複製:

  1. 文件 - 新建 - 項目 - ASP.NET MVC 3 Web應用程序
  2. 編輯項目設置,網址:使用Visual Studio開發服務器
  3. 設置虛擬路徑的東西,包含一個圓點
  4. 嘗試運行網站

有沒有辦法得到這個工作,除了使用IIS而不是卡西尼?

編輯:

我剛纔找到了解決方法。它並沒有真正在部署方案的工作,但它可能會找到解決辦法幫助:

在我的Global.asax.cs文件:

 routes.MapRoute(
      "Default", // Route name 
      // Notice that I added the virtual path here 
      "My.Awesome.WebClient/{controller}/{action}/{id}", // URL with parameters 
      new { action = "Index", id = UrlParameter.Optional } // Parameter defaults 
     ); 

     // This is also new 
     routes.MapRoute(
      "Root", // Route name 
      "", // URL with parameters 
      new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
     ); 

使用此解決方案,我的MVC的網站工作,但只有在以下網址:

http://localhost/My.Awesome.WebClient/My.Awesome.WebClient/ 

回答

3

如果你沒有得到這個問題的答案(個人,我不知道的迂迴方式),我會建議使用「IIS快車」,這是可以免費下載。它可以安裝在開發機器上,您可以使用web.config文件控制很多服務器設置,這是相當不顯眼的。

您可以在這裏下載:

http://www.microsoft.com/download/en/details.aspx?id=1038

我使用IIS快遞獨家現在; Cassini一直缺乏功能,IIS Express避免了我必須爲每個Web應用程序配置IIS。

+0

在Visual Studio vNext中,我認爲應該刪除Cassini以強制每個人使用IIS Express(儘管我個人建議每個人都使用本地IIS 7,如果可能的話IIS Express仍然不是IIS)。 – 2012-02-22 11:53:32

+0

我不同意 - 卡西尼有它的地方。它重量輕,預裝並且不會在遠程端口上偵聽。請參閱Scott Gu的博客以獲取更多比較:http://weblogs.asp.net/scottgu/archive/2010/06/28/introducing-iis-express.aspx – Spikeh 2012-02-22 15:20:34

+0

直到現在,我從未聽說過「IIS Express」提供開發人員需要的所有功能。如果沒有解決這個問題,我會試試看,謝謝。我也喜歡它不需要管理權限來調試。 – 2012-02-22 16:11:17