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

Joh*_*ove 19 iis asp.net .net

这似乎是一个显而易见的问题,但我正在尝试确定顶级 IIS 配置面板上的“更改 .NET 框架版本”按钮实际更改了什么。在我所有的服务器上,它一直保持在 v2.0。我的应用程序池是 v2.0 和 v4.0 的混合体,我所有的 v4.0 应用程序都可以正常运行。

那么,这个版本号控制什么呢?什么会依赖于不会分配给应用程序池的这个?看起来很奇怪。

有问题的设置如下图所示:

在此处输入图片说明

squ*_*man 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

应用程序从根级别的配置设置继承内容。

看看这篇文章,它概述了配置系统并显示了配置层次结构。