【问题标题】:HttpApplication.Application_Start not firing after upgrade to Web API 2升级到 Web API 2 后,HttpApplication.Application_Start 未触发
【发布时间】:2013-10-30 20:16:13
【问题描述】:

我将应用程序升级到 Web Api 2,并且 Application_Start 不会触发在 IIS Express 上运行的升级后。我确实遵循了http://www.asp.net/mvc/tutorials/mvc-5/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5-and-web-api-2 的官方升级路径,并三次检查了我的设置。

应用程序使用 StructureMap MVC 4 来注入依赖项。所以 WebActivator 的 PreApplicationStartMethod 被触发并且依赖解析器被正确设置。之后,无法追踪其他执行。我已启用编辑并继续,但未命中 Application_Start 开头的断点。

这是我尝试过的所有内容: 一种。禁用 PreApplicationStartMethod 并运行应用程序 湾。更改 Global.asax 的编译设置和后面的代码 C。创建另一个具有类似结构的 WebApi2 项目并设置减去实际代码,并且工作正常

我已经清理并运行了该应用程序;还清理了 Temp ASP.NET 文件夹

感谢帮助解决此问题。

【问题讨论】:

    标签: c# asp.net-web-api asp.net-mvc-5


    【解决方案1】:

    您的调试器会在您的应用程序启动后附加,因此您不会在应用程序启动方法中遇到任何断点。一种解决方法是在您连接到进程时让您的网络服务器重新启动:

    只需编辑您的 web.config(只需添加一个空格)并保存,这将使您的 http 应用程序重新启动。

    【讨论】:

    • 我知道这一点;我确实错过了提到当我尝试编辑全局文件时,编辑继续对话框说程序集没有加载。我要删除全局文件,关闭解决方案,重新添加,看看会发生什么。
    • 啊!抱歉,误读了您的回复。它说当我尝试保存 web.config 文件时,我必须停止调试会话,即使我已启用编辑并继续。关于为什么的任何想法?
    • 我想我可以多探索和追求。有趣的是,新 api 应用程序的 Application_Start 中的断点每次都会被击中,而没有对 web.config 进行任何更改。
    【解决方案2】:

    在 Application_Start 中添加 Debugger.Break(); 语句,然后执行 iisreset 或回收应用程序池,然后按 F5。如果断点没有切断它,应该会出现一个即时调试器窗口。

    【讨论】:

      【解决方案3】:

      确保 IIS Express 已关闭,然后再次按 F5 以查看是否命中了 Application_Start。

      【讨论】:

      • 我已经这样做了 - 没有帮助。为了好玩,我更改了端口以运行应用程序并尝试过,但也没有用。
      【解决方案4】:

      我刚刚遇到了同样的问题。 global.asax.cs 方法Application_Start() 没有参数。 一旦我添加了标准的Application_Start(object sender, EventArgs e),该方法就被击中了。

      【讨论】:

        猜你喜欢
        • 2018-01-26
        • 1970-01-01
        • 2015-10-18
        • 1970-01-01
        • 1970-01-01
        • 2014-02-18
        • 1970-01-01
        • 1970-01-01
        • 2021-05-05
        相关资源
        最近更新 更多