首页 > 解决方案 > 我们是否应该在 Azure App Services 上为 ASP.NET Core 2.2+ Web 应用程序使用 AspNetCoreHostingModel?

问题描述

我正在考虑将ASP.NET Core 2.2 Web API 应用程序发布到 Azure App Services。我注意到他们在 ASP.NET Core 2.2 中添加了AspNetCoreHostingModel设置。

关于此的文档说此设置允许In-process hosting.

与进程外托管相比,进程内托管提供了改进的性能,因为请求不会通过环回适配器进行代理。

问题 1:通过在 Windows 应用服务计划中使用 Azure 应用服务,这是否意味着我们自动被迫使用 IIS?

问题 2:如果是这种情况(我们被迫),我们可能应该将此值设置<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>为以利用 InProc 与 Out-of-proc 的性能优势?

编辑:

标签: azureasp.net-coreazure-web-app-service

解决方案


通过在 Windows 应用服务计划中使用 Azure 应用服务,这是否意味着我们自动被迫使用 IIS?

是的,对于 Windows 应用服务计划,.net 核心应用托管在 IIS 中,您可以配置AspNetCoreHostingModel. 您可以参考Azure App Service 中的可用性。你可以参考How to check Azure App Service OS version, what version of IIS to see the iis version。

如果是这种情况(我们被迫),我们可能应该将此值设置为 InProcess 以利用 InProc 与 Out-of-proc 的性能优势?

是的,我们应该设置InProcess.

我对 Linux 应用服务计划的假设是 IIS 在这些上不可用,因此忽略此设置。

对于 Linux 应用服务计划,它通过 docker 托管 .net 核心应用。并且AspNetCoreHostingModel将被 ingored,因为它仅适用于ASP.NET Core Module


推荐阅读