IIS中的“ .NET Framework版本”设置实际上有什么作用?


19

这似乎是一个显而易见的问题,但是我试图确定顶级IIS配置面板上的“更改.NET Framework版本”按钮实际发生了什么变化。在我所有的服务器上,它始终保留为v2.0。我的应用程序池是v2.0和v4.0的混合,并且我的所有v4.0应用程序都能正常运行。

那么,此版本号控制什么?什么会依赖于此而不会分配给应用程序池?似乎很奇怪。

有关设置如下图所示:

在此处输入图片说明

Answers:


13

它使IIS指向.NET的不同根级别配置文件。这些根级别文件位于以下目录中的框架安装文件夹中:%systemroot%\Microsoft.NET\Framework\<version>\CONFIG

IIS在自身中查找配置文件,在%systemroot%\system32\inetsrv\config\applicationHost.config
.NET中查找配置文件 。
%systemroot%\Microsoft.NET\Framework\<version>\CONFIG\machine.config

更改.NET版本会切换使用哪个machine.config。例如,将其更改为v2.050727即可查看%systemroot%\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config。更改为v4.0.30319可以查看%systemroot%\Microsoft.NET\Framework\v4.0.30319\CONFIG\machine.config

应用程序从根级别配置设置继承东西。

看一下本文概述配置系统并显示配置层次结构。


3

根据TechNet,此设置控制“默认” .NET Framework版本。

在应用程序池级别,此设置控制用于托管与该池关联的应用程序的框架。在服务器级别,此设置对在我的测试服务器上运行的.NET 4.0或2.0站点似乎没有立即或明显的影响,但是我怀疑如果不执行此设置是否是一种选择。它位于“操作”窗格的“部署”部分中,这使我想知道它是否也会影响那里的导入/导出程序包。我要测试一下。

我在iis.net上发现了一个相关的线程,该线程似乎表明此设置将影响默认情况下支持的配置文件部分,而不添加到文件顶部。

我没有在网上搜索其他内容,这似乎是个晦涩难懂的设置。

编辑:squillman的答案更好。


1
我本打算以完全相同的方式回答,但随后我重新阅读了这个问题:他在谈论IIS中的顶级设置,而不是特定的应用程序池。而且该设置对我也没有意义,因为IIS中没有任何“全局” .NET版本,这是特定于应用程序池的设置。
马西莫

是的,您是正确的,感谢您的评论。我必须编辑答案。
jbuch 2012年

2
还要注意.NET 4.5是4.0的扩展,它没有引入新的运行时。
理查德

原来,我的原始答案与应用程序池有关,现在很清楚,当您在IIS管理器中单击服务器节点时,您是指“操作”窗格中的“更改.NET Framework版本”选项。工具。所以基本上我没有帮助,如果我在几分钟内找不到更好的答案,我将删除我的答案。
jbuch 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.