Rick Strahl's Web Log

Wind, waves, code and everything in between...
ASP.NET • C# • HTML5 • JavaScript • AngularJs
Contact   •   Articles   •   Products   •   Support   •   Search
Ad-free experience sponsored by:
ASPOSE - the market leader of .NET and Java APIs for file formats – natively work with DOCX, XLSX, PPT, PDF, images and more

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:


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:


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:


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.

I'll be at DevIntersection in Vegas this fall giving sessions on ASP.NET Core with Angular and Localization. Thinking of coming? Use discount code STRAHL and save a few bucks. If you do be sure to stop by and say hello!

ASP.NET DevIntersection 2017. Rick Strahl Coupon Code

Posted in IIS   ASP.NET  

The Voices of Reason


Rik Hemsley
March 24, 2008

# Oh dear

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?

Tom Pester
March 24, 2008

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

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


João P. Bragança
March 24, 2008

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

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.

Nicholas Piasecki
March 24, 2008

# .NET 3.0 runs on .NET 2.0 but not on .NET 1.1 and down the rabbit hole we go

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 ....

March 24, 2008

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

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\

Rick Strahl
March 24, 2008

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

@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.

May 28, 2008

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

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 -

June 09, 2008

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

THANK YOU!!!! I've been beating my head over this ALL DAY! This is the answer I needed!

October 17, 2008

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

Thank you, you saved me a lot of time

October 19, 2008

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

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.

October 20, 2008

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

Thank you very much, I been trying to fogure this out for the pass week.

October 24, 2008

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

Rick's blog to the rescue again!

October 25, 2008

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

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?

November 08, 2008

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

Sure am glad MS doesn't make airplanes.

November 17, 2008

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

Thank you for the info. Guys check this out - www.mono-project.com

November 25, 2008

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

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.

January 02, 2009

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

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.


July 17, 2009

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

Cheers Rick! Just ran into this.

Jitendranath Palem
July 23, 2009

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

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..
Jitendranath Palem

Madhanlal JM
August 26, 2009

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

Thank you. Your explanation solved my confusion.

Carter Tune
September 08, 2009

# re: Where's my .NET 3.5 (on IIS), 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!


September 08, 2009

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

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.

September 16, 2009

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

I was lost before reading this...much appreciated.

October 11, 2009

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

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?

October 13, 2009

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

thanks for the tip Rick!!

Rock ON!

November 06, 2009

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

thanks for clarification

December 02, 2009

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

Thank you.

sumera Nazli
December 09, 2009

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

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.

Chintan Shah
December 23, 2009

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

Thanks for information. I think .Net 4.0 has its own runtime version. Isn't it?

Chintan Shah
December 23, 2009

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

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

Rick Strahl
December 23, 2009

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

@Chintan - Yes .NET 4.0 will be a full new runtime version completely seperate from V 2.0.

January 20, 2011

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

Thanks for sharing Rick - Stupid MS

Steve Collins
April 30, 2011

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

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!

Shoun Devid
February 20, 2013

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

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 - 2017