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=184.108.40.206, 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 ?
A related issue -- my computer does not have an ASPNET account. How do I create it? I have just now installed v3.5 of .NET framework on Windows 2003 Server.
A really good article to explain something actually quite fundamental. A lot of developers are not aware of the basic concept that 3.5 is not a standalone framework.
Great article. Saved me some time!
Exactly what I was looking for.
Thanks for such a nice article
Very helpful!! Like you started your article - I was one of those confused by the whole thing. Not any more!
Thanks, a very helpful article!
Thank you for that clarification.
Great! thanks for this extremely helpful information
yes, useful.i had iis installed after .ne t 3.5 and i
wished asp.net 3.5 extension in iis dropdownlist.
but it is clear now.
Really a good Article!!!!!!!!!!!!!!!!!!1
Thank you for clarifying how 3.5 is working in this article. I just installed 2008 and converted the 1st projects. I was confused when I saw 2.0 references in IIS .... Your article really helped me.
I've an Web Application in ASP.NET 3.5, I'm trying to run it through IIS 6.0, how ever the application is not running. After 10 mins its showing Timeout error waiting for a program to execute. The command being executed was "C:WINDOWS....\v3.5\......\vbc.exe" /noconfig @"C:\WINDOWS\.........\v2.0.50727\............ *.cmdline"
PLease suggest something, its very urgent.
Boy do I feel silly :)
This was great info, thanks!