【问题标题】:MVC 5 Application_Start Not RunningMVC 5 Application_Start 未运行
【发布时间】:2014-12-04 04:20:47
【问题描述】:

我有一个使用 Visual Studio 2010 构建的旧 MVC 应用程序。然后我使用 Visual Studio 2013 升级到 MVC 5 并升级了 NuGet 包。它可以构建,但是当我通过 Visual Studio 运行应用程序时,它找不到主视图。我将其追溯到 Global.asax,发现 Application_Start 从未被调用过,并且路由也从未设置过。

我在这里发现了一些关于这个问题的问题,但没有一个解决方案对我有用。

Application_start not working

Application_Start not firing?

这看起来很简单,但我找不到解决方案。有什么想法吗?

【问题讨论】:

  • 除了升级软件包之外,还有很多其他需要升级的内容。您需要对配置文件进行大量更改。您完成了吗?
  • 我是 ASP.MVC 的新手,但我遇到了 how to migrate from MVC4 to MVC5 的文章,我预计从 MVC2 迁移会更糟

标签: c# asp.net-mvc visual-studio-2013


【解决方案1】:

我多次遇到此问题,并尝试了许多解决方法。 对我有用的是,

  1. 开始调试您的应用程序 (F5)
  2. 打开您的 global.asax 文件(它的 global.asax 不是 global.asax.cs)
  3. 更改该文件中的某些内容(放置一些空格或其他内容并保存)
  4. 现在在浏览器中刷新页面。
  5. 您会看到您的 application_start 将遇到断点。

解决方案 2

  1. 清除临时目录
  2. 重新启动 IIS(转到命令提示符并说 iisreset)
  3. 开始调试您的应用程序
  4. 然后将您的应用程序附加到流程中。

【讨论】:

  • 在查看我的 Globalasax 之后,我发现了问题。我的 Visual Studio 说我有一个 Global.asax 和一个 Global.asax.cs。当我实际使用 Windows 资源管理器查看我的代码时,结果发现我没有 Global.asax 文件,而只有一个 Global.asax.cs 文件。我不认为这是可能的,但我删除了现有文件并创建了一个新的 Global.asax 文件,一切都开始工作了。
  • @Filjan 您的评论就是我的答案。你应该考虑把它作为一个直接的答案!
【解决方案2】:
  • 在 Application_Start 中放置断点
  • 打开您的 Web.Config
  • 调试您的应用程序 (F5)
  • 更改 Web.Config 中的任何内容(添加空行就足够了)
  • 刷新您的网页
  • Application_Start 将被触发

单独重置 IIS 并不能解决问题,因为调试器是在 Application_Start 触发后附加的。

【讨论】:

    【解决方案3】:

    同样的事情发生在我身上,Global.asax.cs 根本没有被调用......

    就我而言,Inherits 属性在 Global.asax 中丢失

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

    所以在我这样更改之后,它就可以工作了!

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

    【讨论】:

      猜你喜欢
      • 2015-07-09
      • 1970-01-01
      • 1970-01-01
      • 2017-03-01
      • 1970-01-01
      • 2013-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多