我最近完成了两个MVC项目的合并。在调试新项目时,几乎突然之间,我项目中的单个区域开始多次触发 RegisterArea 方法。堆栈跟踪告诉我 Application_Start 和 AreaRegistration.RegisterAllAreas 只被触发一次,但在内部,该区域被实例化两次。
除了单一的默认路由外,AreaRegistration没有任何异常。
我不知道从哪里开始寻找解决方案,任何帮助表示赞赏。
答案 0 :(得分:2)
在内部,MVC缓存与区域关联的程序集,并将此数据写入文件。您应该能够检查此文件,并查看为什么它认为应该有两个实例。
您可以在this answer中找到有关此文件的更多信息,但请查看c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\...\...\...\UserCache
处的文件。根据您使用的项目数量,此文件夹可能非常繁忙,但我能够通过按目录创建日期排序找到我刚刚创建的示例项目。我不认为删除这个目录的内容也会造成很大的伤害。