ASP.NET 核心开箱即用,支持使用 Kestrel 和 WebListener HTTP 服务器在 IIS 和 self-hosting 场景中托管。因此,web.config/project.json 看起来像是使用了 IIS,但如果是这样,我的“为什么”就不清楚了,因为现在 IIS 只是作为反向代理,应用程序本身作为使用 Kestrel HTTP 服务器的单独进程运行。
因此,如果部署到 Azure,主要问题是默认使用“what”和“why”?
是的,当您发布到 Azure Web 服务时,IIS 用于托管您的应用程序。正如您所说,它充当反向代理到您的应用程序,运行 Kestrel HTTP 服务器。但 IIS 做的不仅仅是 - 它还通过应用程序池管理应用程序进程,其中包括或可能包括:
web.config 更改时重新启动应用程序
在第一个 HTTP 请求上启动应用程序
以指定用户运行应用程序
在一定条件下上回收应用程序池(并有效地重新启动应用程序)
启动多个应用程序进程
handle webdeploy(这是在 Visual Studio 中点击“Publish”时会发生的情况
1 回答
是的,当您发布到 Azure Web 服务时,IIS 用于托管您的应用程序。正如您所说,它充当反向代理到您的应用程序,运行 Kestrel HTTP 服务器。但 IIS 做的不仅仅是 - 它还通过应用程序池管理应用程序进程,其中包括或可能包括:
web.config 更改时重新启动应用程序
在第一个 HTTP 请求上启动应用程序
以指定用户运行应用程序
在一定条件下上回收应用程序池(并有效地重新启动应用程序)
启动多个应用程序进程
handle webdeploy(这是在 Visual Studio 中点击“Publish”时会发生的情况