我的应用程序池使用哪个版本的.NET Framework?

31

我的机器上安装了.Net Framework 4.5,并且在IIS应用程序池中,我将.NET CLR版本设置为4.0。

我的问题是,在运行此IIS站点中的.NET代码时,它使用的框架版本是4.0还是4.5?

请参见下面的屏幕截图:

inetmgr截图

已安装程序截图

2个回答

58

应用程序池(AppPool)的.NET CLR版本与.NET Framework版本不同。

.NET CLR版本4.0是以下.NET Framework版本的CLR基础:

  • 4
  • 4.5(包括4.5.1和4.5.2)
  • 4.6(包括4.6.1和4.6.2 Preview)

因此,具有.NET CLR版本4.0仅意味着您支持上述框架,在其部署的框架版本下运行。

来源:https://learn.microsoft.com/en-us/dotnet/standard/clr#clr-versions

2020年2月更新:

以下是CLR到.NET Framework版本的完整映射,基于这份官方文档。 https://learn.microsoft.com/en-us/dotnet/framework/migration-guide/versions-and-dependencies#version-information

CLR 1.0

.NET Framework 1.0


CLR 1.1

.NET Framework 1.1


CLR 2.0

.NET Framework 2.0

.NET Framework 3.0

.NET Framework 3.5


CLR 4

.NET Framework 4

.NET Framework 4.5

.NET Framework 4.5.1

.NET Framework 4.5.2

.NET Framework 4.6

-> .NET Framework 4.6

.NET Framework 4.6.1

-> .NET Framework 4.6.1

.NET Framework 4.6.2

-> .NET Framework 4.6.2

.NET Framework 4.7

-> .NET Framework 4.7

.NET Framework 4.7.1

-> .NET Framework 4.7.1

.NET Framework 4.7.2

-> .NET Framework 4.7.2

.NET Framework 4.8

-> .NET Framework 4.8

您的代码正在以部署/安装时的.NET Framework 4.5版本运行。您的IIS AppPool已正确配置以支持它。 - ryancdotnet
好的,问题在于测试服务器有Framework 4.5和IIS AppPool是4.0,在这个服务器上TLS v.1协议运行良好。 - Shakeer Hussain
但是在 Stage 服务器上,有 Framework 4.0 客户端配置文件和 IIS AppPool 是 4.0,在该服务器上不支持 TLS V.1 协议。当我搜索时,发现需要将 Stage 服务器的 Framework 4.0 升级到 4.5 版本。 - Shakeer Hussain
虽然这篇文章包含了有用的信息,但它并没有直接回答问题本身。根据第二张截图和问题的时间戳,这台机器很可能已经安装了.NET Framework 4.5.1(可以通过https://learn.microsoft.com/en-us/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed进行验证),所以IIS使用该.NET Framework版本(与CLR v4.0匹配的最新4.x版本)来运行应用程序池。 - Lex Li

13

按照以下步骤获取IIS使用的.Net版本:

  1. 打开IIS管理器。有关如何打开IIS管理器的信息,请参见打开IIS管理器(IIS 7)。
  2. 在连接面板上,展开服务器节点并单击应用程序池。
  3. 在应用程序池页面上,选择要指定.NET Framework版本的应用程序池,然后在操作窗格中单击基本设置。
  4. 在“编辑应用程序池”对话框中,在.NET Framework版本列表中,检查.NET Framework的版本。 -> 获取此版本
  5. 导航到目录并检查clr.dll的详细信息-> C:\Windows\Microsoft.NET\Framework64\从第4步获得的版本号\clr.dll

.Net版本4.0以上正在进行现场升级,安装的版本可以在注册表路径HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\release或version中检查。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接