【发布时间】:2021-01-15 14:17:31
【问题描述】:
是否有可能在 IIS Web 服务器上运行了两个应用程序。一个运行 .NET Core 2.0,另一个运行 2.1?
【问题讨论】:
-
你试过了吗?
-
我做了,但我遇到了错误,想知道是不是因为这个。我还是 .net 的初学者
是否有可能在 IIS Web 服务器上运行了两个应用程序。一个运行 .NET Core 2.0,另一个运行 2.1?
【问题讨论】:
.NET Core 对于在同一 Web 服务器上运行的不同版本非常灵活。
将应用程序发布为自包含,将允许您在同一网络服务器上运行任意多个不同版本。见.NET Core application publishing overview。
仅当您作为 框架相关 发布时,您才需要在 Web 服务器上安装特定的 .NET Core 运行时。即便如此,只要安装了运行时,您也可以发布不同版本的应用程序。
与 .NET Framework 不同的是,您将看到您的应用程序池对于 .NET CLR 版本将具有“无托管代码”。
如果以上链接无法解决您的问题,请提供更多详细信息。
【讨论】:
我可以清楚地回答你是的。 IIS 可以托管多个不同版本的 .net 核心应用程序。
对于不同版本的 .net core 应用,您只需要在您的机器上安装正确版本的 SDK、Runtime 和 Hosting Bundle。无论是 2.0 和 2.1,甚至是 2.1、3.1 和 5.0,都可以在 IIS 中运行。
这是 .net core 5.0 应用程序。我使用服务器变量来反映当前版本。
IServerVariablesFeature serverVars = HttpContext.Features.Get<IServerVariablesFeature>();
string iis_version = serverVars["SERVER_SOFTWARE"];
这是一个空的 .net core 2.1 应用程序的索引页。
这两个应用程序都在我的本地 IIS 上运行。 如果要在 IIS 上部署不同的核心应用程序,只需要注意一件事。不要将它们部署在同一个应用程序池中。
【讨论】: