Most people on installing .NET 3.5 on the server "expect" an entry for v3.5 under the ASP.NET version Tab in IIS manager. And not finding that entry start panicking. If you have been one of those read on. The more tech savvy folks try to run aspnet_regiis -i from the v3.5 framework folder... but even that is missing :)
That brings us to the question
What exactly is ASP.NET 3.5 ?
Take a look at the v3.5 framework folder you will not find most of the files needed for ASP.NET to run like aspnet_isapi.dll / aspnet_filter.dll / aspnet_regiis.exe / aspnet_regsql.exe...
The reason being .NET 3.5 is not a stand alone framework like v2.0 or v1.1 . It is just an extension of the 2.0 framework. The extension provides developers with new language features like Anonymous Types, Extension Methods, Lambda Expressions and of course LINQ .... and AJAX is now integrated ... also you have a few new ASP.NET controls <asp:ListView>, <asp:LinqDataSource>, <asp:DataPager>
Will I get ASP.NET version 3.5 under the ASP.NET tab in IIS 6.0 ?
Nope. Because as far as IIS is concerned nothing has changed. The aspnet_isapi.dll from the version 2.0 folder will still handle the requests and there is no new ISAPI dll specific to version 3.5. So you don't have to change any Script Mappings in IIS ...just leave the web application pointing to v2.0 under the ASP.NET Tab. And this brings us to the next question
What exactly is the extension ?
For that if you have Visual Studio 2008 go ahead and create a Website targeting the .NET 3.5 framework. Then go to the Property Pages of the Website and select References. You will find an entry like this
And those four assembly references provide the new features of v3.5. Here is a 10,000 ft view of the functionality implemented in these assemblies
System.Core - Provides namespaces like System.Linq, System.IO
System.Data.DataSetExtensions - LINQ to DataSet
System.Web.Extensions - AJAX
System.Xml.Linq - New XML API.. supports LINQ to XML
Do I have to configure anything manually ?
No. When you install the .NET 3.5 redistributable on the server it installs these assemblies in the GAC. And any website that refers to these assemblies can fetch them from the GAC so you do not have to configure anything manually. All you need to do is publish the content to a web application that is marked with ASP.NET v2.0
And now you should be thinking
The new language features should require a new compiler. How exactly is the new compiler used ?
The answer is your web.config file. When you create an ASP.NET 3.5 website in Visual Studio 2008 an entry is made in the web.config something like
<compiler language="c#;cs;csharp" extension=".cs" warningLevel="4"
type="Microsoft.CSharp.CSharpCodeProvider, System, Version=22.214.171.124, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<providerOption name="CompilerVersion" value="v3.5"/>
<providerOption name="WarnAsError" value="false"/>
The new features do require a new compiler to be used and the web.config tells .NET that the v3.5 compiler has to be used.
What about IIS 7.0 ?
IIS 7.0 is no different.
[UPDATE 2012] Where is ASP.NET 4.5 …wait Where is .NET 4.5 ?
PingBack from http://www.stonecode.com/where-is-aspnet-35-on-iis/
Most people on installing .NET 3.5 on the server "expect" an entry for v3.5 under the ASP.NET version
Thank you for this - it has solved this problem for me - I had already gone down the blind alley with aspnet_regiis.
It is much appreciated, especially with the detail of the reasons why this happens.
Wonderful article and great explanation.
Thanks Vijayshinva Karnure
Very good article indeed.
I have to admit it is irritating not being able to set the version in IIS. Maybe/hopefully as I begin using the new updates I will start to understand better then reasoning Microsoft had for doing this. Right now the only reason I can think of is making the upgrade a smaller install.
Simple and very good explanation
Very good article. I was also one of those looking for a way to "register" ASP.NET 3.5 in IIS.
If I am using MSBuildToolsPath set to 3.5 is their anyway to find the path to tools I need (aspnet_regiis) from within msbuild?
Thanks for laying out all of the answers in one article!
Most people on installing .NET 3.5 on the server "expect" an entry for v3.5 under the ASP.NET
Thank you for this info, it was very helpful. Clear consice and accurate.
ASP.NET Version when you installing .NET 3.5 ?
thanks..this article was very helpful
Thanks a lot... Saved me a lot of unnecessary work