You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署Node.js到Azure App Service出现starter.cmd执行被中止错误如何解决

Node.js部署到Azure App Service超时报错解决方案

"Command 'starter.cmd "D:\home\site\d ...' was aborted due to no output nor CPU activity for 60 seconds. You can increase the SCM_COMMAND_IDLE_TIMEOUT app setting (or WEBJOBS_IDLE_TIMEOUT if this is a WebJob) if needed.\r\nstarter.cmd "D:\home\site\deployments\tools\deploy.cmd""

该报错触发原因是Azure App Service的SCM(Kudu)服务默认限制部署命令最长60秒无活动就自动中断,Node.js部署场景下依赖安装、生产构建通常耗时较长,很容易触发该限制,可行解决方法如下:

方案1:调整超时阈值(快速生效)

  • 进入对应Azure App Service的资源管理页,在左侧导航栏选择「配置」->「应用程序设置」
  • 点击「新建应用程序设置」,添加参数:
    • 键:SCM_COMMAND_IDLE_TIMEOUT
    • 值:根据项目大小设置为大于60的整数,单位为秒,大型项目建议设置为600(即10分钟)
  • 保存配置后重启App Service,重新触发部署即可
    如果是WebJob部署场景,将参数名替换为WEBJOBS_IDLE_TIMEOUT即可

方案2:优化部署流程(根源解决)

  • 在Azure Repos的CI流水线阶段提前执行npm install、npm run build等耗时操作,直接将构建产物推送至部署阶段,避免在App Service环境执行全量依赖安装和构建
  • 清理package.json中冗余的生产依赖,仅保留必要依赖减少安装耗时
  • 开启包管理器的缓存功能,复用之前下载的依赖包,避免每次部署全量重新下载

方案3:优化日志输出(避免误判)

部分场景下部署命令实际在正常运行,但没有持续输出日志会被SCM判定为空闲,可做如下调整:

  • 在项目的package.json的构建、安装脚本中添加阶段性打印语句,比如依赖安装完成后打印「依赖安装完毕,开始生产构建」,构建完成后打印「构建完成,准备部署文件」
  • 自定义部署脚本deploy.cmd的输出逻辑,保证每间隔30-50秒就有新的日志输出,避免触发空闲判定

内容的提问来源于stack exchange,提问作者Khorf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 10:18:03