views:

10769

answers:

7

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 Studio 2010 Beta 2?

+11  A: 

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.

JaredPar
+1  A: 

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.

Goyuix
+5  A: 

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.

cxfx
+1  A: 

The only way to develop for .Net 4 is to use Visual Studio 2010. However, if you do create a managed assembly in VS2008, you could run in on a machine with .net 4 run-time installed.

Roma
+2  A: 

as many previous Visual Studio releases, you cannot develop a higher version framework application (in this question .NET 4.0) using a VS for a lower version framework (in this question VS 2008), just the same as you cant develop 3.5 apps in VS 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 apps, but I dont think it would recognize the new features from the new framework version.

trace
+1  A: 

You can target the .NET Framework 4.0 using VS2008, just have to wait for the right plugins (create Silverlight 4 projects, etc). For instance, you can use .NET Framework 3.5 in VS2005 with the correct SDK.

Xico
*"just have to wait for the right plugins"* - and when are you planning on releasing these plugins, Xico? :)
BlueRaja - Danny Pflughoeft
A: 

My Project was compiled with VS 2005 and targeted .NET 3.5, it worked fine on a host with .NET 3.5 and .NET 4 but when i've installed it on a fresh host with only .NET 4 it didn't started. The message was: "Unable to find a version of the runtime to run this application"

Fraer