微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我想问一下是否保存通过@PHP $i++ @endPHP .net core web发布配置文件production IIS项目直接发布到WebDeploy服务器。

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

您的发布流程是什么,您是否停止了网站实例?

解决方法

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

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

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

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

Taking an Application Offline before Publishing.

Locked deployment files

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。