tags:

views:

409

answers:

5

Hello everyone,

I am using IIS 7.0 + Windows Server 2008 x64. I have installed .Net Framework 3.5 on my machine, but from IIS 7.0 application pool .Net framework settings, I could only set version to v1.0 or v2.0, why I cannot set to version v3.5 -- which is the latest version of .Net framework I installed on my machine?

thanks in advance, George

+5  A: 

There's a difference between the version of the CLR (the latest of which is 2.0) and that of the .NET framework (the latest of which is 3.5).

A related post can be found here:

http://stackoverflow.com/questions/801114/what-is-meant-by-asp-net-version-2-0

Martin Peck
Cool, so final confirm, 1. since the highest version of CLR is 2.0, then even if we deploy features which uses .Net Framework 3.5 (e.g. WCF), it should run on CLR 2.0? 2. when we configure version in IIS application pool, we configure CLR version other than .Net Framework version?
George2
I believe that is the case obviously if you are using .NET 3.5 framework classes you need the .NET 3.5 framework installed on the server. From the sounds of it it's unlikely you are you could probably downgrade your project to 2.0.
PeteT
You'll need the .NET 3.5 bins installed somewhere (in the bin folder, in the GAC, or whatever) but those libraries run in a 2.0 CLR.
Martin Peck
@petebob796, my question is, could I understand CLR has the runtime and .Net Framework as the development SDK?
George2
@Martin, so when we configure version in IIS application pool, we configure CLR version other than .Net Framework version?
George2
+2  A: 

Versions 3.0 and 3.5 are just extra dlls ontop of the 2.0 framework. Because of this, you will only see 2.0 as an option in IIS.

AaronS
1. since the highest version of CLR is 2.0, then even if we deploy features which uses .Net Framework 3.5 (e.g. WCF), it should run on CLR 2.0? 2. when we configure version in IIS application pool, we configure CLR version other than .Net Framework version?
George2
Correct. For any version of the framework 2.0 or higher, you will select 2.0 in IIS. If you don't have 3.5 installed on the server, and you try to use 3.5 features, you will get errors at runtime saying it can't find the correct libraries.
AaronS
@AaronS, cool answer.
George2
+1  A: 

.NET Framework 3.x = .NET Framework 2.0 + new features (WPF, WF, WCF, etc.)

So no need to worry. Version selectors in IIS will not show 3.x versions.

NinethSense
could I understand CLR has the runtime and .Net Framework as the development SDK?
George2
.NET SDK is another package which you can download seperately. (Same comes with Visual Studio also).
NinethSense
What in your mind is the differences between CLR and .Net Framework? My understanding is CLR is the runtime, and .Net Framework is the library used at development/runtime. My understanding correct?
George2
CLR is a part of .NET Framework..NET Framework is a library basically. (just like JVM for Java, if you know). Please read: http://en.wikipedia.org/wiki/.NET_Framework
NinethSense
so when we configure version in IIS application pool, we configure CLR version other than .Net Framework version?
George2
I like the wiki document you recommended.
George2
Yes, CLR Version.CLR Version is stil 2.0. Check this link. There is a tabular data which may be more clear for you - http://weblogs.asp.net/rosherove/archive/2006/06/15/MappingCLRWinfxandNETFramework30upcomingversions.aspx
NinethSense
+1  A: 

All IIS cares about is the version of the CLR, not the version of the libraries that you may or may not be loading onto your machine. So it will only show the difference versions of the CLR and not the different versions of the various libraries.

JaredPar
1. could I understand CLR has the runtime and .Net Framework as the development SDK? 2. since the highest version of CLR is 2.0, then even if we deploy features which uses .Net Framework 3.5 (e.g. WCF), it should run on CLR 2.0?
George2
+1  A: 

To answer the comment that George2 has left to each of the other answers in one place:

Yes. The Common Language Runtime is what needs to be 2.0 (and cannot, currently, be higher, since that's the latest at this time).

Yes. You can think of the .Net Framework as the SDK if that makes it easier. It's not quite accurate, but....

Yes. You will be deploying your Framework 3.5 functionality on the CLR 2.0. Confusing, but that's Microsoft for you. They do (some) great work, but seem to delight in confusing users with arbitrary versioning.

RolandTumble
There is one left you not answered. :-) question is -- so when we configure version in IIS application pool, we configure CLR version other than .Net Framework version?
George2
Yes. You configure IIS for the CLR version rather than the Framework version.
RolandTumble
Cool, question answered.
George2