ASP.NET Core 应用程序是否可以实现平滑的“热部署”?

7
在使用.NET框架下的ASP.NET中,您可以执行“热部署”,而不会造成中断。这是因为IIS可以为同一应用程序处理多个应用程序域:当新代码到达时,它会“排干停止”旧应用程序域,允许其完成请求,同时新应用程序域启动并开始提供新请求。
我的问题是:在ASP.NET Core和Kestrel中是否有类似的并行功能?如果有,是什么?

你是如何部署常规的ASP.NET应用程序的?使用Xcopy还是Web Deploy? - mason
@mason,这正是我试图弄清楚的部分。这两个因素是否会影响答案? - ChaseMedallion
我想问一下你是如何部署现有应用程序的。我不知道是否有内置的方法可以在不停机的情况下部署 ASP.NET 应用程序。 - mason
@mason 在 ASP.NET 中,我们使用 MSDeploy,它非常好用。旧的应用程序域仍然存在,而新的应用程序域正在启动。由于应用程序启动时间,它并不是100%无缝的,但没有请求被丢弃。 - ChaseMedallion
1
不这么想,我们将asp.net core应用程序托管在Windows上的IIS中,并采用app_offline.htm方法,以便能够轻松地复制应用程序。 - AardVark71
1个回答

5

Kestrel并没有像IIS一样内置这个功能。想一想:Kestrel直接绑定到80端口。您必须启动一个新的Kestrel进程来更新您的代码。这些进程无法共享端口80,也没有办法在没有反向代理的情况下从一个进程移交给另一个进程。

您可以在您的Web服务器前面使用负载均衡器。然后进行滚动更新或蓝绿部署。


Azure的持续部署是否适用于Asp.net Core?在.Net MVC中,可以通过Azure应用服务实现这一点。然后,您只需将持续部署工具指向您的生产或测试git分支即可。 - Scuba Steve

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接