将代码发布到生产 IIS 服务器是否会干扰 运行 http 请求?

Will publishing code to production IIS server interfere with running http requests?

请问直接通过WebDeployFolder发布配置文件将.net core web项目发布到production IIS服务器是否省事

已经 运行 个 http 请求怎么办?先停止 IIS 网站,更新代码并重新启动网站会更好吗?但是我不知道停止IIS网站是等待运行个http请求还是强行停止。发布配置文件是否默认处理此问题(例如,文件夹发布配置文件经常发生 IIS 进程正在使用文件并且发布操作失败)?

你的发布流程是什么,你停止网站实例吗?

.net core项目直接发布到IIS时会保存配置文件

在发布.net core 应用程序时,web 不是运行 iis 中的,而是作为一个单独的out-of-process 控制台应用程序,使用Kestrel 组件。 AspNetCoreModule 在请求周期的早期挂钩到 IIS 管道,将所有流量重定向到以下 Core 应用程序,所有请求都转发到 Core 进程。

请求来自 Web 并进入内核模式 http.sys 驱动程序,该驱动程序在主端口 (80) 或 SSL 端口 (443) 上路由到 IIS。然后请求被转发到为您的应用程序配置的 HTTP 端口上的 ASP.NET 核心应用程序,该端口不是端口 80/443。本质上,IIS 充当反向代理,只是将请求转发到 ASP.NET Core Web 运行 不同端口上的 Kestrel Web 服务器。

所以我建议您在发布时停止网站并重新启动它。当应用程序 运行 时,部署文件夹中的文件被锁定。部署期间无法覆盖锁定的文件。我建议大家在发布新网站时,将原有的应用下线,这也是微软推荐的。更多详情可参考以下文档。

Taking an Application Offline before Publishing.

Locked deployment files