Azure App Service部署成功后更新版本未生效、冷启动无响应如何解决?
Azure App Service Express应用部署不生效&冷启动问题解决办法
问题根因
新版本部署后仍加载旧版本
- Linux Node.js环境默认开启部署缓存,旧的构建产物和依赖包未被覆盖,应用仍加载旧代码
- 免费层级资源配额有限,部署完成后未触发应用进程重载,旧进程持续运行
冷启动无响应
配置中alwaysOn参数为false,免费层级默认关闭该功能,应用超过20分钟无访问进程就会被系统回收,首次访问需要重新启动进程导致超时,第二次访问时进程已启动完成所以可以正常响应。
修复步骤
解决版本不生效问题
- 校验部署文件正确性:进入对应应用服务的「高级工具(Kudu)」,选择「Debug console」-「Bash」,进入
/site/wwwroot目录查看修改后的代码文件是否为最新版本,若此处文件为旧版本,说明部署时未正确选择本地代码目录,需要重新执行部署操作。 - 关闭部署缓存强制构建:进入应用服务「配置」-「应用程序设置」,新增2个配置项:
SCM_DO_BUILD_DURING_DEPLOYMENT:值设为true,强制部署时重新构建应用WEBSITE_NODE_DEFAULT_VERSION:值设为14-lts,明确Node.js运行版本
保存配置后应用会自动重启,再重新执行部署操作即可。
- 手动重启进程:每次部署完成后,在应用服务控制台点击「重启」按钮,强制销毁旧进程加载新代码。
解决冷启动问题
- 继续使用免费层级:无法开启AlwaysOn功能,可自行实现定时探活脚本,每隔10分钟调用一次应用接口,避免进程被回收。
- 升级服务层级:升级到Basic及以上付费层级后,可在「配置」-「常规设置」中开启「Always On」选项,系统会持续保活应用进程,不会自动回收。
额外排查点
免费层级存在CPU、内存运行配额限制,若修改配置后仍存在问题,可进入应用服务「诊断并解决问题」页面,查看部署日志、应用运行日志定位具体异常原因。
内容的提问来源于stack exchange,提问作者MartinDuo
相关产品推荐
相关产品推荐

