【问题标题】:Migrating ASP.NET (MVC 2) on .NET 3.5 over to .NET 4 #gotchas将 .NET 3.5 上的 ASP.NET (MVC 2) 迁移到 .NET 4 #gotchas
【发布时间】:2011-02-13 15:07:29
【问题描述】:

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

原因是掌握这些事情总是好的——另外我真的很喜欢新的automatic encoding<%: %>clean web.config :-)

那么,有没有人可以分享一下经验呢?寻找陷阱和类似的东西。

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

TIA,
查尔斯

【问题讨论】:

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


    【解决方案1】:

    问题 #1 - 更改应用程序池

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

    问题 #2 - [ValidateInput(false)] 停止工作

    这是 ASP.NET 4.0 中的一项重大更改。相关问题可以在here找到。

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

    【讨论】:

      【解决方案2】:

      我刚刚经历了那个过程。这是相对无痛的。正如您所提到的,它会让您有机会使用您的 web.config 文件进行一些房屋清洁。

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

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

      否则过程非常顺利。

      【讨论】:

      • 太棒了,我实际上在MvcBuildViews=true 和 VS2010 的发布之前遇到过这个问题。感谢您的链接:-)
      • 嗯,你采取了哪些步骤?我将我的 VS 项目升级到 .NET 4 - 它为我清理了我的 web.config。然后我在 IIS7.5 中更新了我的应用程序池以使用 .NET 4 框架,但现在该站点抛出 500.19 - 由于权限不足而无法读取配置文件。但是应用程序池身份肯定有读取文件的权限,而IIS匿名身份验证肯定是使用应用程序池身份。有什么想法吗?
      • 别担心最后一条评论 - 似乎当我将项目升级到 .NET 4 时,它自动将网站的应用程序池更改为新的 ASP.NET v4.0 应用程序-水池。我只需要改回来。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-05
      • 1970-01-01
      • 1970-01-01
      • 2011-06-29
      • 2011-06-19
      • 2011-04-03
      相关资源
      最近更新 更多