34

我的 ASP.NET 应用程序在我的 Web 服务器上的 IIS 中运行,并使用 Microsoft .NET Framework 4 Beta 2。(其应用程序池设置为 .NET Framework 版本 .NET Framework v4.0.21006。)

它给出了这个新错误:

从客户端检测到潜在危险的 Request.Form 值...

这是由于 .NET 4 中的重大变化

为了恢复 ASP.NET 2.0 请求验证功能的行为,我在 Web.config 文件中添加了以下设置:

<httpRuntime requestValidationMode="2.0" />

现在 Visual Studio 2008 会引发编译时错误:

未声明“requestValidationMode”属性。

而且我无法再使用 Visual Studio 附带的 ASP.NET 开发服务器在我的开发机器上进行调试。

我需要 Visual Studio 及其 ASP.NET 开发服务器来识别新的 .NET Framework 4 requestValidationMode属性。

如何在 .NET 4 中调试我的应用程序?我必须从 Visual Studio 2008 切换到 Visual Studio 2010 Beta 2 吗?

4

7 回答 7

31

您不能使用 Visual Studio 2008 以受支持的方式开发 4.0 应用程序。目前只有 Visual Studio 2010 可用于开发 4.0 应用程序。从 2008 年开始,您可以使用它来开发框架的早期版本,但不能用于更新的框架。

于 2009-12-02T22:47:22.457 回答
14

来自ScottGu 的博客

没有任何方法可以从 VS08 定位 .NET 4 并使用新功能。话虽如此,.NET4 向上兼容 .NET 3.5 - 因此,您使用 VS08 构建的针对 .NET 3.5 的应用程序应该可以在 .NET 4 之上正常工作。

于 2009-12-02T22:49:06.637 回答
3

与许多以前的 Visual Studio 版本一样,您不能使用用于较低版本框架(在此问题 Visual Studio 2008 中)的 Visual Studio 开发更高版本的框架应用程序(在此问题中为 .NET 4.0),就像您无法开发一样Visual Studio 2005 中的 3.5 应用程序,等等。

每次开发应用程序时,您都可以尝试将引用从 .NET 3.5 更新到 .NET 4.0(例如,使用 .NET 4.0 中的 System.dll 而不是项目直接引用的那个),但我认为不会识别新框架版本的新功能。

于 2010-01-05T03:51:15.283 回答
3

为 .NET 4 开发的唯一方法是使用 Visual Studio 2010。但是,如果您确实在 Visual Studio 2008 中创建了托管程序集,则可以在安装了 .NET 4 运行时的机器上运行。

于 2009-12-02T22:51:29.563 回答
1

我的猜测是,您已经发现了其中一个极好的案例,它只会抱怨无休止。使用 VS2010 的测试版或删除 validationMode 属性可能会更好。

理论上,您可以尝试附加到适当的工作进程并获得一些调试的爱 - 但它仍然可能无法正常工作。

于 2009-12-02T22:48:45.077 回答
1

您可以使用 Visual Studio 2008 以 .NET Framework 4.0 为目标。您只需等待正确的插件(创建 Silverlight 4 项目等)。例如,您可以在 Visual Studio 2005 中使用带有正确 SDK 的 .NET Framework 3.5。

于 2010-04-26T13:52:59.133 回答
0

如果你想在没有昂贵的 Visual Studio 2010 Pro 的情况下为 .NET 4 开发,你可以试试Mono

单声道项目

于 2011-07-26T02:52:14.873 回答