Just to try to get this in one place:
The C# programming language is largely independent of the .NET Framework. One example of this is that Visual Studio 2008 introduced version 3 of the C# programming language, which supported lambda expressions. That same version of Visual Studio 2008 also introduced version 3.5 of the .NET Framework. It also introduced the ability to target either version 2.0, 3.0 or 3.5 of the Framework, while allowing you to use version 2.0 or 3.0 of the language.
This allows you, for instance, to use C# 3.0 features in a program that targets version 2.0 or 3.0 of the .NET Framework.
Somehow, your ASP.NET application (or is it a web site) is set to use version 2.0 of the C# programming language. Your Console application is set to use version 3.0. That is why it works in your console application and not in your ASP.NET application.
ASP.NET has always, and will always, support the same .NET Framework and C# programming language features as a Console application. If you're seeing a difference between the two, then it's a difference in your settings, not a difference in the platforms. This is based on my knowledge of ASP.NET since the betas of version 1.0.