我正在使用Azure网站进行升级,以便在交换到生产之前预热更改。但是,此解决方案不适用于实体框架迁移。
如果我在暂存插槽上启用迁移,则会正确迁移数据库。但是,生产网站仍然使用旧迁移,不再能够与db上下文连接并生成错误。
因此,登台网站没问题,但产量下降了。我曾尝试直接发布到生产,只要有不良结果的迁移(网站因为数据库在多次请求时遇到迁移而难以迁移15分钟,因为所有缓存都在网站上重置)。
我能找到的唯一解决方案是让网站停下来向用户显示维护信息。
我想要做的是将用户重定向到维护页面,该页面会在1分钟后使用javascript将其重定向回之前的请求。但是,我只会为实体迁移错误(数据库架构更改)执行此操作。对于其他错误,他们应该转到标准错误页面。
我可以通过设置维护消息部署插槽手动完成所有操作,并在手动部署升级时将其交换到生产环境。但是,有没有自动化的方法呢?
上传(使用ftp)app_offline.htm到production,向用户显示一条简单的消息,并使用javascript每分钟重新加载页面。
将迁移部署到暂存
加载登台以执行迁移并预热网络应用
交换生产
删除app_offline.htm(现在正在暂存)