这似乎是一个明显的问题,但我想确定顶级IISconfiguration面板上的“更改.NET Framework版本”button实际上发生了什么变化。 在我的所有服务器上,它始终保持在2.0版本。 我的应用程序池是v2.0和v4.0的混合体,我所有的v4.0应用程序都正常运行。
那么,这个版本号是什么控制的呢? 什么将依赖于这不会被分配到应用程序池? 看起来很奇怪。
有关的设置如下图所示:
它使IIS指向.NET的不同根级configuration文件。 这些根级文件位于%systemroot%\Microsoft.NET\Framework\<version>\CONFIG
的框架安装文件夹中
IIS在%systemroot%\system32\inetsrv\config\applicationHost.config
查找自己的configuration文件
和.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
应用程序从根级configuration设置inheritance事物。
看看这篇文章 ,概述了configuration系统,并显示configuration层次结构。
根据TechNet ,此设置控制“默认”.NET Framework版本。
在应用程序池级别,此设置控制用于托pipe与池关联的应用程序的框架。 在服务器级别,这个设置似乎没有任何立即或明显的影响,我的testing服务器上运行的.NET 4.0或2.0网站,但我怀疑这将是一个选项,如果它什么都没做。 它在“操作”窗格的“部署”部分中的位置让我怀疑它是否会影响位于那里的导入/导出包。 我要去testing这个
我在iis.net上find了一个相关的线程 ,似乎表明这个设置会影响默认支持的configuration文件部分,而不会添加到文件的顶部。
我还没有发现其他networkingsearch,这似乎是一个非常模糊的设置。
编辑:从squillman的答案是更好的。