2014-12-04 71 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触发后附加的。