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