目前,我的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);
}
当我点击F5
时,应用程序就会启动,除非我在~/Views/Home/
文件夹中有一个名为Index.aspx
的视图,否则我会收到"View missing“错误消息,尽管我已经重新定义了默认路由并删除了HomeController
。我希望得到路由调试器,如果没有,至少会有一个~/Views/Arrangement/Index.aspx
请求。
RegisterRoutes(Routetable.Routes);
上的断点在调试时永远不会命中。
我尝试过构建、重建、重启VS、清理、重新重建等等,但似乎都不起作用。为什么应用程序不运行当前版本的代码?
发布于 2009-06-09 22:56:45
我发现了问题:
这个MVC应用程序是一个更大的解决方案的一部分,在这个解决方案中,我曾经为一个x86环境(我正在运行x64)设置了另一个项目。当我这样做的时候,显然所有其他项目-即使是那些后来添加的项目-都被设置为不在Ctrl+Shift+B
上构建,我想这就是调试器没有命中我的断点的原因。
解决方案:
进入解决方案生成属性(右键单击Solution,选择属性,然后在左侧菜单上选择build ),并选中列表中项目名称旁边的Build复选框。
发布于 2012-03-27 09:20:55
向Application_Start()
添加System.Diagnostics.Debugger.Break();
。
这将强制使用断点。
这一行应该被注释掉,以避免断点的发生和#ifdef debug
,以确保永远不会进入生产环境。
注意:这是IIS的问题。自从我写了这个答案以来,事情已经发生了变化,您可以通过使用其他服务器来避免这样做,例如IIS Express。
发布于 2009-06-09 02:51:04
我相信您必须关闭/停止本地调试服务器才能再次触发Application_Start()
事件……你应该能够在系统托盘中右击它,然后选择“停止”。
https://stackoverflow.com/questions/967813
复制相似问题