在 .NET Framework ASP.NET 下,您可以无中断地执行新代码的"热部署"。这是因为 IIS 可以为同一应用程序处理多个应用程序域:当新代码到达时,它会"排出"旧应用程序域,允许它完成请求,同时新应用程序域启动并开始为新请求提供服务。
我的问题是:在 ASP.NET 核心与 Kestrel 中是否有任何相似之处?如果是这样,怎么办?
Kestrel 不像 IIS 那样内置此功能。想一想:红隼直接绑定到端口 80。您必须启动一个新的 Kestrel 进程来更新您的代码。这些进程不能共享端口 80,并且如果没有两个进程前面的反向代理,就无法将其从一个进程移交给另一个进程。
您可以在 Web 服务器前面使用负载均衡器。然后执行滚动更新或蓝绿部署。