从 .NET 4.5 MVC 4 升级到 .NET 4.5.2 MVC 5.2

Posted

技术标签:

【中文标题】从 .NET 4.5 MVC 4 升级到 .NET 4.5.2 MVC 5.2【英文标题】:Upgrade from .NET 4.5 MVC 4 to .NET 4.5.2 MVC 5.2 【发布时间】:2014-07-06 22:06:33 【问题描述】:

几乎相同的scenario as before,但这次我需要将应用程序从 .NET 4.5 (MVC 4) 升级到 4.5.2 (MVC 5.2)。我已经通过在 Win 8 机器上解决了前面的问题。它在Win 7上不起作用。 现在,执行相同的程序(在 Win 8 机器上)我又遇到了问题。

我已经followed the steps:

    已将所有项目升级到 Framework 4.5.2。 检查了 Microsoft.AspNet.WebHelpers 以将其卸载,但它不存在。 是否执行了Manage NuGet Packages for Solution...步骤,并将Microsoft.ASPNET MVC升级到5.2和Microsoft.ASPNET Web API到 2.2。 编辑了所有 Web.Config 文件。 我已经尝试了最终步骤(卸载项目...),但 GUID 已经消失。

项目构建良好,但运行时出现服务器错误页面:

Attempt by security transparent method   
'WebMatrix.WebData.PreApplicationStartCode.Start()' to access security 
critical method 'System.Web.WebPages.Razor.WebPageRazorHost.AddGlobalImport(System.String)' failed.

我已经尝试了在网上找到的所有解决方案,但没有成功。

由于目标版本 4.5.2/5.2,我还有什么需要做的吗?

更新 1

删除了 WebMatrix.Data 和 WebMatric.WebData。现在我收到 403.14 错误。请求命中 Global.asax Application_PreRequestHandlerExecute 方法,但没有进入 Application_Start。

【问题讨论】:

您真的在使用 WebMatrix 吗?我之前已经将 WebMatrix 包添加到我的项目中,但没有意识到或打算将它们添加到那里。 是的,我有 WeMatrix.Data 和 WebMatrix.WebData,但我不使用 WebMatrix。我已经删除了它们。现在,我收到 HTTP 错误 403.14 - 禁止错误。该请求根本没有命中 Global.asax。 你见过这个吗:***.com/questions/11425574/… 是的。我试图在 web.config 中包含模块设置行。没有运气。我使用 VS 2013 内置服务器运行应用程序,但我不确定如何在其上重置 ASP.NET 或检查应用程序池。 【参考方案1】:

我已经解决了。我在项目中使用了 Fluent Validation,并没有将 FluentValidation.MVC4 更新为 MVC5。

【讨论】:

以上是关于从 .NET 4.5 MVC 4 升级到 .NET 4.5.2 MVC 5.2的主要内容,如果未能解决你的问题,请参考以下文章

将 ASP.NET MVC 从 4 升级到 5 的奇怪错误

如何将.net framework 4.5升级到.net框架4.6?

升级到 .NET 4.5 和 EF5。不再能够部署 WCF 服务。

HTTP 错误 403.14 - 禁止 - MVC4 .net 4.5 捆绑包

跟我一起学习ASP.NET 4.5 MVC4.0

与 MVC 3、.NET 4.5 和 EF 6 并行获取数据