Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 奇怪的MVC行为,区域注册开火两次_C#_Asp.net Mvc_Asp.net Mvc 4 - Fatal编程技术网

C# 奇怪的MVC行为,区域注册开火两次

C# 奇怪的MVC行为,区域注册开火两次,c#,asp.net-mvc,asp.net-mvc-4,C#,Asp.net Mvc,Asp.net Mvc 4,我最近完成了两个MVC项目的合并。在调试新项目时,几乎突然间,我的项目中的单个区域开始多次启动其RegisterArea方法。堆栈跟踪告诉我,应用程序启动和区域注册。RegisterAllAreas只触发一次,但在内部,该区域被实例化两次 除了单一的默认路线外,AreaRegistration没有任何异常之处 我不确定从哪里开始寻找解决方案,任何帮助都将不胜感激 在内部,MVC缓存与区域关联的程序集,并将此数据写入文件。您应该能够检查这个文件,并了解为什么它认为应该有两个实例 您可以在中找到有关

我最近完成了两个MVC项目的合并。在调试新项目时,几乎突然间,我的项目中的单个区域开始多次启动其RegisterArea方法。堆栈跟踪告诉我,应用程序启动区域注册。RegisterAllAreas只触发一次,但在内部,该区域被实例化两次

除了单一的默认路线外,AreaRegistration没有任何异常之处


我不确定从哪里开始寻找解决方案,任何帮助都将不胜感激

在内部,MVC缓存与区域关联的程序集,并将此数据写入文件。您应该能够检查这个文件,并了解为什么它认为应该有两个实例


您可以在中找到有关此文件的详细信息,但请检查以下位置的文件:
c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\…\…\…\UserCache
。根据您处理的项目数量,此文件夹可能非常繁忙,但我可以通过按目录创建日期排序找到我刚刚创建的示例项目。我也不认为删除此目录的内容会造成太大的伤害。

设置一个断点,以调试模式启动,并在每次遇到断点时检查堆栈跟踪。这并不粗鲁,但我知道如何调试我的应用程序。我已经对它进行了调试、重构和整个九个步骤。我正在寻找我从未遇到过的奇怪行为的可能原因。如果您这样做了,那么您肯定知道第二个RegisterArea是从哪里调用的?是的,从AreaRegistration.RegisterAlareas,这是一个框架代码,可以自动嗅出程序集中AreaRegistration类型的类。问题是,我只有一个AreaRegistration类,但它触发了两次。请手动清理项目(删除bin的内容),然后使用“显示所有文件”检查解决方案中没有不属于项目可见部分的文件。如果你一直在合并项目,很可能你还有剩余的东西