首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当我调试我的ASP.NET MVC应用程序时,为什么Application_Start()事件不触发?

当我调试我的ASP.NET MVC应用程序时,为什么Application_Start()事件不触发?
EN

Stack Overflow用户
提问于 2009-06-09 01:51:22
回答 9查看 50.7K关注 0票数 72

目前,我的Global.asax.cs文件中有以下例程:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    routes.MapRoute(
        "Default",                                          
        "{controller}/{action}/{id}",                       
        new { controller = "Arrangement", action = "Index", id = "" }
    );
}

protected void Application_Start()
{
    RegisterRoutes(RouteTable.Routes);
    // Debugs the routes with Phil Haacks routing debugger (link below)
    RouteDebug.RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes);
}

Routing debugger...

当我点击F5时,应用程序就会启动,除非我在~/Views/Home/文件夹中有一个名为Index.aspx的视图,否则我会收到"View missing“错误消息,尽管我已经重新定义了默认路由并删除了HomeController。我希望得到路由调试器,如果没有,至少会有一个~/Views/Arrangement/Index.aspx请求。

RegisterRoutes(Routetable.Routes);上的断点在调试时永远不会命中。

我尝试过构建、重建、重启VS、清理、重新重建等等,但似乎都不起作用。为什么应用程序不运行当前版本的代码?

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2009-06-09 22:56:45

我发现了问题:

这个MVC应用程序是一个更大的解决方案的一部分,在这个解决方案中,我曾经为一个x86环境(我正在运行x64)设置了另一个项目。当我这样做的时候,显然所有其他项目-即使是那些后来添加的项目-都被设置为不在Ctrl+Shift+B上构建,我想这就是调试器没有命中我的断点的原因。

解决方案:

进入解决方案生成属性(右键单击Solution,选择属性,然后在左侧菜单上选择build ),并选中列表中项目名称旁边的Build复选框。

票数 6
EN

Stack Overflow用户

发布于 2012-03-27 09:20:55

Application_Start()添加System.Diagnostics.Debugger.Break();

这将强制使用断点。

这一行应该被注释掉,以避免断点的发生和#ifdef debug,以确保永远不会进入生产环境。

注意:这是IIS的问题。自从我写了这个答案以来,事情已经发生了变化,您可以通过使用其他服务器来避免这样做,例如IIS Express。

票数 32
EN

Stack Overflow用户

发布于 2009-06-09 02:51:04

我相信您必须关闭/停止本地调试服务器才能再次触发Application_Start()事件……你应该能够在系统托盘中右击它,然后选择“停止”。

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/967813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档