2014-12-04 29 views
5

我有一個使用Visual Studio 2010構建的舊MVC應用程序。然後使用Visual Studio 2013升級到MVC 5並升級了NuGet包。它的構建,但是當我通過Visual Studio運行應用程序時,它找不到主視圖。我將其追溯到Global.asax,發現Application_Start從不被調用,並且路由從未設置。MVC 5 Application_Start未運行

我在這裏發現了一些關於這個問題的問題,但沒有一個解決方案適用於我。

Application_start not working

Application_Start not firing?

這看起來很簡單,但我不能找到一個解決這個。有任何想法嗎?

+0

升級比升級軟件包還有很多更多的東西。你需要做很多配置文件的更改..你有沒有做過這些? – 2014-12-04 05:12:42

+0

我是新的ASP.MVC,但我遇到了文章[如何從MVC4遷移到MVC5](http://www.asp.net/mvc/overview/releases/how-to-upgrade-an-aspnet -mvc-4-and-web-api-project-to-aspnet -mvc-5-and-web-api-2),我預料到從MVC2遷移會更糟 – pf1957 2014-12-04 08:01:04

回答

5

我幾次遇到這個問題,並嘗試了很多解決方法。 什麼對我來說是工作,

  1. 開始調試應用程序(F5)
  2. 打開Global.asax文件(其Global.asax中沒有的global.asax.cs)
  3. 改變的東西在那個文件(把一些空白或東西,並保存)
  4. 現在刷新您的頁面在您的瀏覽器中。
  5. 你會看到你的application_start會打斷點。

解決方案2

  1. 清除臨時目錄
  2. 重新啓動IIS(去命令提示符說IISRESET)
  3. 開始調試應用程序的
  4. 然後與附上您的應用程序處理。
+4

看到我發現的Globalasax後,問題。我的Visual Studio說我有一個Global.asax和一個Global.asax.cs。當我真的用Windows資源管理器查看我的代碼時,事實證明我沒有Global.asax文件,只有Global.asax.cs文件。我不認爲這是可能的,但我刪除了現有的文件,並創建一個新的Global.asax文件,並開始工作。 – Filjan 2014-12-05 18:25:46

4

同樣發生在我身上,Global.asax.cs中不會被調用在所有...

至於我的情況下,Inherits屬性在Global.asax

<%@ Application Codebehind="Global.asax.cs" Language="C#" %> 

所以失蹤我改變它之後,它的工作原理!內的Application_Start

  • <%@ Application Codebehind="Global.asax.cs" Inherits="MyAwesomeApp.MvcApplication" Language="C#" %> 
    
  • 2
    • 將斷點打開你的web.config
    • 調試您的應用程序(F5)在你的web.config
    • 任何改變(增加空行就足夠了)
    • 刷新您的網頁
    • Application_Start將被觸發

    單獨重置IIS並不能解決問題,因爲調試器是在Application_Start觸發後附加的。

    相關問題