Asp.net core 将代码发布到生产IIS服务器会干扰http请求的运行吗?

Asp.net core 将代码发布到生产IIS服务器会干扰http请求的运行吗?,asp.net-core,iis,publishing,dev-to-production,Asp.net Core,Iis,Publishing,Dev To Production,我想问一下,通过WebDeploy或文件夹发布配置文件,将.net核心web项目直接发布到生产IIS服务器是否保存 那么已经在运行http请求呢?是否最好先停止IIS网站,更新代码,然后重新启动网站?但我不知道停止IIS网站是否会等待http请求的运行,还是会强制停止它们。默认情况下,发布配置文件是否处理此问题(例如,在文件夹发布配置文件中经常发生这样的情况,即IIS进程正在使用文件,而发布操作失败) 发布过程是什么,是否停止网站实例?将.net核心项目直接发布到IIS时,将保存配置文件 发布.

我想问一下,通过
WebDeploy
文件夹
发布配置文件,将
.net核心web
项目直接发布到
生产IIS
服务器是否保存

那么已经在运行http请求呢?是否最好先停止IIS网站,更新代码,然后重新启动网站?但我不知道停止IIS网站是否会等待http请求的运行,还是会强制停止它们。默认情况下,发布配置文件是否处理此问题(例如,在文件夹发布配置文件中经常发生这样的情况,即IIS进程正在使用文件,而发布操作失败)


发布过程是什么,是否停止网站实例?

将.net核心项目直接发布到IIS时,将保存配置文件

发布.net核心应用程序时,web不是在iis中运行,而是作为单独的进程外控制台应用程序,使用Kestrel组件。AspNetCoreModule在请求周期的早期连接到IIS管道,将所有流量重定向到以下核心应用程序,并将所有请求转发到核心进程

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

因此,我建议您在发布时停止网站,然后重新启动它。应用程序运行时,部署文件夹中的文件被锁定。部署期间无法覆盖锁定的文件。我建议您在发布新网站时将原始应用程序脱机,这也是Microsoft的建议。有关更多详细信息,请参阅以下文档


感谢您的精彩解释。我将根据此调整部署过程