将.NET 3.5上的ASP.NET(MVC 2)迁移到.NET 4 #gotchas

时间:2010-04-29 02:07:33

标签: asp.net .net-3.5 visual-studio-2010 asp.net-mvc-2 .net-4.0

我目前在.NET 3.5上有一个ASP.NET MVC 2应用程序,我想用Visual Studio 2010将其迁移到新的.NET 4.0。

原因是保持对这些事情的掌控总是好的 - 加上我真的很喜欢<%: %>与{{1}}和automatic encoding的新clean web.config: - )

那么,有没有人有他们可以分享的经验?寻找陷阱和喜欢。

我想这也适用于任何ASP.NET Forms项目。

TIA,
查尔斯

2 个答案:

答案 0 :(得分:3)

陷入困境#1 - 更改应用程序池

如果您的ASP.NET项目设置为使用IIS而不是Cassini,则在升级到.NET 4.0过程中,它会自动将您的站点使用的应用程序池更改为新的ASP.NET v4.0应用程序池。如果您使用应用程序池标识进行匿名身份验证,这可能会对权限产生影响。

陷入困境#2 - [ValidateInput(false)]停止工作

这是ASP.NET 4.0中的重大变化。可以找到相关问题here

jist是您必须将<httpRuntime requestValidationMode="2.0" />添加到您的web.config。

答案 1 :(得分:1)

我刚刚完成了这个过程。这是相对无痛的。如您所述,它将为您提供使用web.config文件进行房屋清洁的机会。

我遇到了一个问题。如果您通过MvcBuildViews = true利用项目文件中的post build ASP.NET编译任务,那么如果您尝试发布,则可能会遇到问题。显然,VS 2010会在项目的子目录中对文件进行分段,从而导致ASP.NET编译器检测到多个web.config文件。微软在这篇文章中有完整的解释和回应:

http://forums.asp.net/p/1547458/3797505.aspx

否则这个过程非常顺利。