我正在尝试设置一个基于 .Net 的 RestApi,该 RestApi 应托管在运行 IIS 的 Windows Server 上。但出于某种原因,我无法将我的池配置为需要它才能使其工作。
以下是供应商对于如何进行操作的描述。WindWard 文档
它指出以下内容
单击“应用程序池”文本字段旁边的“选择…”按钮。单击下拉列表并选择以下选项之一:
ASP.NET v4.0 .NET 4.5 或 .NET 4.0(尽管您可能只会看到 .NET 4.0 或 .NET 4.5,但如果您安装了 .NET 4.5.1,则任一选项都可以使用。)我应该看到这个选项
但无论我安装的是 2012R2、2016 还是 2019 版本,我都从未看到过该选项,我总是得到下面的选项,所以不确定我在这里遗漏了什么
答案1
确实只有 (*) 两个 .NET 版本:2.0 和 4.0。
3.0 和 3.5 只是 2.0 的附加内容。
4.5、4.7、4.8 只是 4.0 的附加内容。
是的,IIS UI 甚至更加令人困惑。
无论如何,4.x 只是意味着“从 4.0 开始的任何内容”。只需选择任何 4.x 运行时即可。
(*)它得到了更糟之后。
答案2
当微软最初设计 IIS 7 时,他们认为 CLR 版本将坚持 .NET Framework 版本,以便应用程序池可以拥有 1.0、1.1 或 2.0 版本的 .NET Framework。
然而,.NET Framework 3.0/3.5 的推出打破了这一规则,因为它们仍然使用 CLR 2.0。同样,所有 .NET Framework 4.x 版本都使用 CLR 4.0。因此,您从那篇 WindWard 文章中看到的旧版 UI 不幸令人困惑。您可以找到许多具有类似背景的 Stack Overflow/ServerFault 线程。
您现在在 IIS 管理器中看到的是最新的 UI(不太记得是什么时候首次推出的,可能是 IIS 10),其中 Microsoft 明确列出了 CLR 版本。对于初学者来说,它仍然很难理解,因为并非所有 .NET 开发人员都完全了解 CLR 概念的细节,但至少不那么令人困惑。