Contact   •   Products   •   Search

Rick Strahl's Web Log

Wind, waves, code and everything in between...
ASP.NET • C# • HTML5 • JavaScript • AngularJs

Where's my .NET 3.5 (on IIS), Dude?


I just delivered a small 3.5 application to a  customer in compiled form and told him to install the application on IIS. The company is one I've dealt with on a few occasions and they are .NET aware shop where I deal with developers and a .NET familiar IT department. But it wasn't long after I sent my email that I got a call back from the customer who - slightly embarrassed - mentioned that he couldn't figure out how to 'turn on' .NET 3.5 on his IIS 6 Web Server.

This is not the first time this has happened:  It's slightly confusing given the funky version numbering that the .NET framework has gone through with versions 3.0 and 3.5.

The not so obvious 'problem' is that if you fire up a machine that has .NET 3.5 installed, you might be surprised to find that the IIS service panel's ASP.NET does not show an option to select the .NET Runtime of 3.5.

Instead you get the .NET runtime dropdown that looks like the one shown in the figure:

IIS6NoNet35

Where's my .NET 3.5, dude?

IIS 6 (shown above) and prior tie the .NET runtime to a specific Virtual Directory or 'Application' which is actually problematic if you happen to have more than one version of the runtime configured for a given Application Pool. Because IIS 6 configures the .NET runtime at the vritual level it's possible for two virtuals in the same Application Pool to use different runtime versions - if you do, the one loading last will fail.

On IIS 7 the runtime configuration is tied to an IIS Application Pool  rather than the Virtual/Web Application:

II7Versions

which avoids the above problem of multiple runtimes hosted in the same Application Pool by pre-loading the runtime at startup. But on IIS 7 too you won't see a .NET 3.5 runtime selection.

It's all 2.0

So, no the customer didn't do anything wrong during installation of .NET 3.5. In fact that'd be hard to do given that .NET 3.5 installs .NET 2.0, 3.0 and 3.5 in one pass (and which makes for the rather much, much bigger 120meg footprint of the 3.5 runtime install!).

The key to understanding why .NET 3.0 or 3.5 aren't showing up is that both of those .NET versions are running on the core .NET 2.0 runtime. So the core runtime is .NET 2.0 (or 1.0 or 1.1 which are all core runtime versions), while .NET 3.0 and .NET 3.5 are essentially library updates.

You can verify this for yourself if you run a .NET 3.5 application on your machine and you echo back inside of an ASP.NET page:

<%= System.Environment.Version  %>

which on my machine with .NET 3.5 installed shows:

2.0.50727.1434

So you can see that indeed the .NET 2.0 runtime is what's driving the show. .NET 3.5 is merely a set of additional system libraries that extend the 2.0 runtime. And a bunch of tools and infrastructure, but all built on the premise of the 2.0 version of the runtime. In theory you can take the new DLLs in the .NET 3.5 runtime and distribute them with your application without installing .NET 3.5. In theory... this is probably not a good idea as certain pieces of .NET 3.5 require installation and system component support. But it demonstrates the point.

No Problem - or is it?

The version numberings certainly are confusing and while it's probably nothing new to most .NET developers who keep up with the latest frameworks and news, it's an easy thing to miss if you're new or are to busy to follow Microsoft's latest follies in naming and versioning. Certainly if you are just starting out coding with .NET 3.5 without having followed the versioning history of .NET you're not likely to know that .NET 3.5 is not an actual runtime version, but essentially a library revision.

This is especially true for IT folks who are even less likely  know about the funky nuances of .NET versioning. It's one of those issues you run into once and remember from thereon forward, but the first time it might still be a headscratcher that wastes a few minutes of time.

Make Donation
Posted in IIS   ASP.NET  


Feedback for this Post

 
# Oh dear
by Rik Hemsley March 24, 2008 @ 1:18pm
Yes, I did this too. I installed my app, it didn't work completely as I expected, so I went to check the right runtime was selected in IIS - and found 2.0. My first thought was 'I know 3.0 used 2.0, but I thought 3.5 was different'. Ten minutes and much searching later, I was finally convinced that yes, 2.0 is the right number. Clear as mud, eh?
# re: Where's my .NET 3.5 (on IIS), Dude?
by Tom Pester March 24, 2008 @ 1:20pm
Thanks for this info Rick. IT folks will be scratching their heads :)

Here is some more background info on the green & red bits in .NET 3.5

http://www.danielmoth.com/Blog/2007/06/net-framework-35.html
# re: Where's my .NET 3.5 (on IIS), Dude?
by João P. Bragança March 24, 2008 @ 3:00pm
Protip: If you want runtime compilation of LINQ in your aspx pages you have to specify the 3.5 compiler in the system.codedom configuration node in web.config. You should probably add references to System.Core and System.Xml.Linq in web.config as well.
# .NET 3.0 runs on .NET 2.0 but not on .NET 1.1 and down the rabbit hole we go
by Nicholas Piasecki March 24, 2008 @ 3:45pm
You'd think Microsoft would have learned after watching the whole "Java 2 SDK 5.0 version 1.5.0" naming debacles from Sun, but I guess MS is prone to this sort of thing too. Remember when .NET first came out and the marketing department went insane and started slapping .NET on the end of everything? Windows Server 2003 .NET, Passport.NET, YourMom.NET ....
# re: Where's my .NET 3.5 (on IIS), Dude?
by Buma March 24, 2008 @ 4:20pm
What about the aspnet_compiler ?
Is there a 3.5 version as well or do we keep using the one under ...\Microsoft.NET\Framework\v2.0.50727\
# re: Where's my .NET 3.5 (on IIS), Dude?
by Rick Strahl March 24, 2008 @ 4:45pm
@Buma - ASP.NET 3.5 doesn't have a new compiler. None of the ASPNET_*.exe utilities have been updated. You can check out the 3.5 framework folder to get an idea what has and hasn't updated.

Only the language compilers have changed. You do need to tell ASP.NET to use the new compilers if you want to use .NET 3.5 although I believe that if you're running WAP projects that's not an issue if you precompile the code. With stock projects though the 3.5 compilers need to be available in order to compile code behind .cs files and APP_CODE assemblies using the 3.5 compilers.

Like I said - running 3.5 assemblies is best done after 3.5 has been installed although with some tweaking you can run the 3.5 assemblies on a 2.x install. Not worth it IMHO - especially not on a server application. In a desktop app - maybe given that hte 3.5 framework install is nearly 200 megs compared to 25 megs for the 2.0 install.
# re: Where's my .NET 3.5 (on IIS), Dude?
by Dustinthetube May 28, 2008 @ 9:17am
Sweet! Saved me a bunch of time...and from a fellow surf rat too...very cool!

if you ever make it to spain...send me an email and we can hit the waves while we code!

D -
# re: Where's my .NET 3.5 (on IIS), Dude?
by NeededHelp June 09, 2008 @ 7:00pm
THANK YOU!!!! I've been beating my head over this ALL DAY! This is the answer I needed!
# re: Where's my .NET 3.5 (on IIS), Dude?
by Trevor October 17, 2008 @ 11:32am
Thank you, you saved me a lot of time
# re: Where's my .NET 3.5 (on IIS), Dude?
by James October 19, 2008 @ 9:24am
Thanks for the information. It's a big help. You'd think useful tips like this would be in the text books or help files.
# re: Where's my .NET 3.5 (on IIS), Dude?
by Brandon October 20, 2008 @ 11:59am
Thank you very much, I been trying to fogure this out for the pass week.
# re: Where's my .NET 3.5 (on IIS), Dude?
by Patrick October 24, 2008 @ 4:43am
Rick's blog to the rescue again!
# re: Where's my .NET 3.5 (on IIS), Dude?
by Anonymous October 25, 2008 @ 2:39am
Is it allowed to distribute .net 3.5 assemblies along with your .net 2.0 apps? It can be possible but is it legal? Doesn't microsoft prohibits it?
# re: Where's my .NET 3.5 (on IIS), Dude?
by Eureka November 08, 2008 @ 4:57am
Sure am glad MS doesn't make airplanes.
# re: Where's my .NET 3.5 (on IIS), Dude?
by VPDJ November 17, 2008 @ 9:09pm
Thank you for the info. Guys check this out - www.mono-project.com
# re: Where's my .NET 3.5 (on IIS), Dude?
by Michael November 25, 2008 @ 10:28am
I understand your info, however, my page still doesn't work. When I try to connect via the web, I get a "page cannot be displayed" error. Do I need to install the 2.0 framework before installing the 3.5 framework? I only installed the 3.5 framework, but it looks like it also installed the 2.0 framework as well. I'm using IIS 6.0. Is some configuration required to allow web pages to display? Right now, it appears that only HTML pages are being displayed.
# re: Where's my .NET 3.5 (on IIS), Dude?
by Joel January 02, 2009 @ 1:28am
Hi Rick,

Arrived once again at your site from google as i was left scratching my head on why the version no. didn't tally up in iis.
btw, sorry for the post above impersonating you ;) I thought you would have some kind of validation ensuring only you could use that name.

Cheers!
# re: Where's my .NET 3.5 (on IIS), Dude?
by Adam July 17, 2009 @ 9:05am
Cheers Rick! Just ran into this.
# re: Where's my .NET 3.5 (on IIS), Dude?
by Jitendranath Palem July 23, 2009 @ 9:04pm
Thats True .. .Net 2.0 is the center of actions and 3.0 and above are extended libraries but it would be feast for eyes if 3.0 number displays under asp.net version drop down in IIS.
thanks a lot for this well explained case.. Thanks to Clint edmonson for referring this blog..
Cheers!!
Jitendranath Palem
CineFXLabs
# re: Where's my .NET 3.5 (on IIS), Dude?
by Madhanlal JM August 26, 2009 @ 5:41am
Thank you. Your explanation solved my confusion.
# re: Where's my .NET 3.5 (on IIS), Dude?
by Carter Tune September 08, 2009 @ 7:52am
Dude,

I can't believe it, but my sites probels all got resolved when I changed the ASP.NET properties for each website from ASP 1.1 to ASP 2.0!

ctune
# re: Where's my .NET 3.5 (on IIS), Dude?
by ctune September 08, 2009 @ 7:59am
Further, I could'nt find any reference other then saying that once asp 3.5 redistributable was installed, that nothing had to be set; and a lot of the asp 2.0 links that came up when I was googling it are no longer valid.
# re: Where's my .NET 3.5 (on IIS), Dude?
by shay September 16, 2009 @ 6:42am
I was lost before reading this...much appreciated.
# re: Where's my .NET 3.5 (on IIS), Dude?
by mctan October 11, 2009 @ 7:51pm
My hosting compnay tells me they're running ASP.NET 3.5 but I simulated an error by using the listview tag. However, I got a Parser Error Message: Unknown server tag 'asp:ListView'. Is there anything I must do to "open" up ASP 3.5?
# re: Where's my .NET 3.5 (on IIS), Dude?
by mike October 13, 2009 @ 2:24pm
thanks for the tip Rick!!

Rock ON!
m
# re: Where's my .NET 3.5 (on IIS), Dude?
by Prat November 06, 2009 @ 1:47am
thanks for clarification
# re: Where's my .NET 3.5 (on IIS), Dude?
by Ingrid December 02, 2009 @ 7:47am
Thank you.
# re: Where's my .NET 3.5 (on IIS), Dude?
by sumera Nazli December 09, 2009 @ 3:45am
i hv two app 1 is on .net1.1, n 2nd is upgration of it on .net3.5, am using IIS6.0, i hv created 2 App Pools, n assigned separate pool to both of them, but still facing the same prob, at a time 1 app can run. when 2nd app run previous logout.
# re: Where's my .NET 3.5 (on IIS), Dude?
by Chintan Shah December 23, 2009 @ 2:17am
Thanks for information. I think .Net 4.0 has its own runtime version. Isn't it?
# re: Where's my .NET 3.5 (on IIS), Dude?
by Chintan Shah December 23, 2009 @ 2:27am
NET Framework 1.x = CLR 1.x
.NET Framework 2.0 = CLR 2.0
.NET Framework 3.0 = CLR 2.0
.NET Framework 3.5 = CLR 2.0 + (C# 3.0 | VB9)

Found from: http://www.hanselman.com/blog/HowToSetAnIISApplicationOrAppPoolToUseASPNET35RatherThan20.aspx
# re: Where's my .NET 3.5 (on IIS), Dude?
by Rick Strahl December 23, 2009 @ 12:34pm
@Chintan - Yes .NET 4.0 will be a full new runtime version completely seperate from V 2.0.
# re: Where's my .NET 3.5 (on IIS), Dude?
by Mark January 20, 2011 @ 1:42pm
Thanks for sharing Rick - Stupid MS
# re: Where's my .NET 3.5 (on IIS), Dude?
by Steve Collins April 30, 2011 @ 5:31pm
Thanks for sharing your knowledge Rick. I just installed a new app on a customer's web server and had the same framework question. When I searched for an answer your article came up at the top of the list.
I seen a presentation you gave at dotnet rocks a few years back. Whenever I'm stuck on something I always seem to run across your articles when I search for solutions.
Keep up the good work!
# re: Where's my .NET 3.5 (on IIS), Dude?
by Shoun Devid February 20, 2013 @ 8:43am
It didn't work for me, I did this too. THANK YOU. This is the answer I needed! My sites problems got resolved when I changed the ASP.NET properties for each website from ASP 1.1 to ASP 2.0!
 


West Wind  © Rick Strahl, West Wind Technologies, 2005 - 2014