我刚刚使用.NET 4.5将ASP.NET MVC 3升级到ASP.NET MVC 4并且根控制器正在运行,但MVC区域中的控制器开始出现404错误。
我查找了IIS 7 QFE补丁,但它不适用于Windows 8.通过设置断点,我可以看到该区域已成功注册,并且在完成注册后,我看到路由集合中注册的4条路线和第一条是对应于区域的路线。但是对区域网址的任何请求都会降至404错误。
答案 0 :(得分:0)
对于在升级期间遇到问题的每个人,我都会留下这个答案。
我有一个业务逻辑库(一个不同的.NET类库),它是针对ASP.NET MVC 3编译的。
如果您使用对ASP.NET MVC 4项目中针对ASP.NET MVC 3编译的其他库的任何引用,则Web服务器不会引发任何错误,而是无法加载依赖于它的控制器外部库因此它不会显示加载错误,而是抛出404错误,因为它假设找不到控制器。
如果它们不依赖于针对MVC3编译的外部库,则在同一区域中定义的控制器运行良好。
简而言之“任何控制器,取决于针对MVC3编译的任何库中的类型都不会加载,并且将引发404错误”。
理想情况下,它应该引发错误。