我的MVC 3应用程序Auth和Users中有几个区域.我正在使用
Phil Haacks Route Debugging tool来查看我的路线列表,并根据我的网址查看哪个路线被选中.
但是,有一些路由存在,我没有在我的AreaRegistration文件或Globalasax中创建,我不知道它们来自何处或如何摆脱它们.路线在下面以黄色突出显示.
您还可以看到我在Auth区域中创建了一个默认路由(以绿色突出显示),它只是指向我的Auth控制器的Login操作.我调试了RouteTable,它在AreaRegistration.RegisterallAreas()时被添加;方法被调用.但是,它也没有被添加到AreaRegistration中,因为它也已经逐步完成了.
解决方法
我不想回答我自己的问题,但经过一天试图解决这个问题,我想我会发布答案以防其他人有同样的问题.
最后,我从我的应用程序中删除了所有区域,并且只有基本的Global.asax路由.当我运行应用程序时,我可以在路由调试器中看到路由集合仍在使用来自现在不存在的区域的路由.在尝试了许多事情,包括删除我的ASP.NET临时文件中的所有内容,搞乱IIS AppPools并清理浏览器数据后,我终于遇到了答案.
我删除了网站bin文件夹中的所有内容,进行了重建,并且低了,看到路线消失了.我用所描述的配置恢复了我的区域,一切正常.
我不知道为什么我的MVC应用程序保留并填充旧路由但是一旦我的bin被清除并且新的dll创建了一切正常工作.如果有人知道为什么会这样,那么我会非常感兴趣.