首页 文章

如果将 ASP.NET Core 作为 Web 应用程序部署到 Azure,那么用于托管的是什么?

提问于
浏览
2

ASP.NET 核心开箱即用,支持使用 Kestrel 和 WebListener HTTP 服务器在 IIS 和 self-hosting 场景中托管。因此,web.config/project.json 看起来像是使用了 IIS,但如果是这样,我的“为什么”就不清楚了,因为现在 IIS 只是作为反向代理,应用程序本身作为使用 Kestrel HTTP 服务器的单独进程运行。

因此,如果部署到 Azure,主要问题是默认使用“what”和“why”?

1 回答

  • 4

    是的,当您发布到 Azure Web 服务时,IIS 用于托管您的应用程序。正如您所说,它充当反向代理到您的应用程序,运行 Kestrel HTTP 服务器。但 IIS 做的不仅仅是 - 它还通过应用程序池管理应用程序进程,其中包括或可能包括:

    • web.config 更改时重新启动应用程序

    • 在第一个 HTTP 请求上启动应用程序

    • 指定用户运行应用程序

    • 一定条件下上回收应用程序池(并有效地重新启动应用程序)

    • 启动多个应用程序进程

    • handle webdeploy(这是在 Visual Studio 中点击“Publish”时会发生的情况

相关问题