Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

This seems like an obvious question, but I'm trying to determine what the "Change .NET Framework Version" button on the top level IIS configuration panel actually changes. On all of my servers, it has always been left at v2.0. My application pools are a mixture of v2.0 and v4.0 and all of my v4.0 applications operate correctly.

So, what does this version number control? What would rely on this that wouldn't be assigned to an application pool? Seems strange.

The setting in question is pictured below:

enter image description here

share|improve this question
up vote 12 down vote accepted

It makes IIS point to different root level config files for .NET. These root level files reside within the framework installation folders in %systemroot%\Microsoft.NET\Framework\<version>\CONFIG

IIS looks for config files for itself in %systemroot%\system32\inetsrv\config\applicationHost.config
and for .NET in

Changing the .NET Version switches which machine.config get used. For example, changing it to v2.050727 will have it look at %systemroot%\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config. Changing to v4.0.30319 will have it look at %systemroot%\Microsoft.NET\Framework\v4.0.30319\CONFIG\machine.config

Applications inherit things from the root level config settings.

Have a look at this article that outlines the config system and shows the configuration hierarchy.

share|improve this answer

According to TechNet, this setting controls the "Default" .NET Framework version.

At the application pool level, this setting controls the framework that is used to host applications associated with the pool. At the server level, this setting doesn't appear to have any immediate or obvious affect on .NET 4.0 or 2.0 sites running on my test server, however I doubt it would be an option if it did nothing. It's location in the Deploy section of the Actions pane makes me wonder if it would affect the import/export packages located there as well. I'm going to test this.

I found a related thread on which seems to indicate this setting would affect the configuration file sections that are supported by default without adding to the top of files.

I haven't found much else searching the web, it seems to be a pretty obscure setting.

Edit: The answer from squillman is better.

share|improve this answer
I was going to answer in the exact same way, but then I re-read the question: he's talking about the top-level setting in IIS, not about a specific application pool. And that setting doesn't make sense to me either, as there is not any "global" .NET version in IIS, this is an application pool - specific setting. – Massimo Jul 24 '12 at 17:51
Yes you are correct, thanks for the comment. I'll have to edit my answer. – jbuch Jul 24 '12 at 17:54
Also note .NET 4.5 is an extension to 4.0, it does not introduce a new runtime. – Richard Jul 24 '12 at 18:08
As it turns out, my original answer was relating to Application Pools, and it is clear now that you are referring to the "Change .NET Framework Version" option under the "Actions" pane when you click on the server node in the IIS Manager tool. So basically I was no help, if I can't find a better answer in a few minutes I'm going to delete my answer. – jbuch Jul 24 '12 at 18:10

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.