My ASP.NET application runs in IIS on my web server and uses Microsoft .NET Framework 4 Beta 2. (Its Application Pool is set to .NET Framework version .NET Framework v4.0.21006.)
It gives this new error:
A potentially dangerous Request.Form value was detected from the client...
This is due to a breaking change in .NET 4.
To revert to the behavior of the ASP.NET 2.0 request validation feature, I added the following setting in the Web.config file:
<httpRuntime requestValidationMode="2.0" />
Now Visual Studio 2008 throws a compile-time error:
The 'requestValidationMode' attribute is not declared.
And I can no longer debug on my development machine using the ASP.NET Development Server that comes with Visual Studio.
I need Visual Studio and its ASP.NET Development Server to recognize the new .NET Framework 4 requestValidationMode attribute.
How can I debug my application in .NET 4? Must I switch from Visual Studio 2008 to Visual S开发者_Python百科tudio 2010 Beta 2?
You cannot use Visual Studio 2008 to develop 4.0 applications in a supported manner. Currently only Visual Studio 2010 can be used to develop 4.0 apps. Starting with 2008 you can use it to develop for earlier versions of the framework but not later ones.
From ScottGu's blog:
There isn't any way to target .NET 4 from VS08 and use new features. Having said that, .NET4 is upwards comaptible with .NET 3.5 - so applications you build targeting .NET 3.5 with VS08 should work fine on top of .NET 4.
The only way to develop for .NET 4 is to use Visual Studio 2010. However, if you do create a managed assembly in Visual Studio 2008, you could run in on a machine with .NET 4 run-time installed.
As many previous Visual Studio releases, you cannot develop a higher version framework application (in this question .NET 4.0) using a Visual Studio for a lower version framework (in this question Visual Studio 2008), just the same as you can't develop 3.5 applications in Visual Studio 2005, and so on and so forth.
You may try updating the references from .NET 3.5 to .NET 4.0 (for example, using System.dll from .NET 4.0 instead of the one referenced directly by the project) every time you develop applications, but I don't think it would recognize the new features from the new framework version.
My guess is that you have found one of those fabulous cases where it is just going to complain to no end. You will likely be better off using the beta of VS2010 or removing the validationMode attribute.
You could, in theory, try attaching to appropriate worker process and get some debugging love - but it still might not work.
You can target the .NET Framework 4.0 using Visual Studio 2008. You just have to wait for the right plugins (create Silverlight 4 projects, etc.). For instance, you can use .NET Framework 3.5 in Visual Studio 2005 with the correct SDK.
If you want to develop for .NET 4 without the pricey Visual Studio 2010 Pro, you can try Mono:
Mono Project
精彩评论