这似乎是一个显而易见的问题,但我试图确定顶级 IIS 配置面板上的“更改 .NET Framework 版本”按钮实际上会改变什么。在我的所有服务器上,它始终保留在 v2.0。我的应用程序池是 v2.0 和 v4.0 的混合体,我的所有 v4.0 应用程序都可以正常运行。
那么,这个版本号控制什么?什么会依赖它而没有被分配给应用程序池?这似乎很奇怪。
有问题的设置如下图所示:
答案1
它使 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
应用程序从根级配置设置继承内容。
看一下本文概述了配置系统并显示了配置层次结构。
答案2
据 TechNet 报道,此设置控制“默认” .NET Framework 版本。
在应用程序池级别,此设置控制用于托管与池关联的应用程序的框架。在服务器级别,此设置似乎不会对我的测试服务器上运行的 .NET 4.0 或 2.0 站点产生任何直接或明显的影响,但是如果它不执行任何操作,我怀疑它是否是一个选项。它位于“操作”窗格的“部署”部分,这让我怀疑它是否也会影响位于那里的导入/导出包。我要测试一下。
我发现相关主题在 iis.net 上,这似乎表明此设置会影响默认支持的配置文件部分,而不会添加到文件顶部。
我在网上没有找到太多其他信息,它似乎是一个非常模糊的设置。
编辑:squillman 的回答更好。