【发布时间】:2020-06-23 15:00:45
【问题描述】:
在具有 IIS 的 Windows 服务器计算机上部署 Blazor 服务器 SPA 且没有(甚至非常短的)停机时间的推荐策略是什么?
当我进行一些更改时,我将项目发布到本地文件夹,但随后我必须手动停止服务器上的站点,否则副本会因文件访问锁定而挂起。
谢谢
【问题讨论】:
在具有 IIS 的 Windows 服务器计算机上部署 Blazor 服务器 SPA 且没有(甚至非常短的)停机时间的推荐策略是什么?
当我进行一些更改时,我将项目发布到本地文件夹,但随后我必须手动停止服务器上的站点,否则副本会因文件访问锁定而挂起。
谢谢
【问题讨论】:
在我看来,如果要实现零停机发布新站点,唯一的办法就是使用两台服务器。
您应该使用两台服务器和 IIS 负载平衡。您可以先修改负载均衡,将所有请求转移到第二台服务器,然后将应用程序发布到第一台服务器。
在您测试了第一台服务器并确保第一台服务器运行良好之后。然后您可以将所有请求转移到第一台服务器。
更多关于如何使用IIS负载均衡,你可以参考这个article。
【讨论】:
最后,我创建了一个 .bat,在复制到生产服务器之前重命名 App_offline.htm 中的 App_offline.xxx 文件,复制文件然后反之亦然重命名。 几秒钟的停机时间(带有消息“服务器更新,几秒钟后刷新......”)比手动停止站点然后重新启动要好得多。
【讨论】: