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 ?
I re-installed version 3.5 twice... I thought there is a problem... thanks for this article... now I can smile :)
I was also one of those looking for a way to "register" ASP.NET 3.5 in IIS.
I share my view with Federico Caldas (his post dated 10 Apr 2008).
Excellent I was Looking for the same thing.
Thanks a lot for such a good explination.
Excellent article! Exactly the information I was looking for. Thanks Danke!
Brilliant. Excellent and very useful article.
Thanks a lot for sharing your knowledge.
This is a very nice article. Thank you very much.
I don't know how many times I get asked this same question daily. Thank you for writing the article so clearly and simply. I will certainly offer your URL as part of my answer in the future.
Thanxs a lot!
Jus to be clear this is the same for IIS 5.0, 5.1, 6.0 and 7.0 ?
From your explanations its seems to be that it is
Very helpful and very clear explanation. Great
Thanks, you saved me from pulling ALL of my hair out.
Very helpful and informative article.
I have created one project on Visual studio 2005. I craeted virtual directory and it worked fine. I was able to access it. Now I have installed Visual studio 2008. I have upgraded my project to 2008. I also created virtual directory.
This time it is giving an error when I am trying to browse my project from I.E. The error is failed to access iis metabase. Can you please help me regarding this?
Thanks! I just installed VS2008 and was hella confused about "registering" 3.5
Kalo arthro. Kerdizeis ena xryso papari .NET 3.5
Simple, clean, and direct explanation. Excellent article. Much appreciated.