部署WebJob到Azure报错:端点返回202状态码且一直处于Pending Restart状态
问题现象
az : Getting scm site credentials for zip deployment: Deployment endpoint responded with status code 202
同时部署后WebJob持续处于Pending Restart状态无法正常运行。
部署报错及参数遗漏排查
- 首先确认zip包结构符合WebJob部署要求:
连续运行WebJob:zip包根目录必须包含App_Data/jobs/continuous/<你的WebJob名称>/路径,所有WebJob执行文件放在该目录下
触发式WebJob:zip包根目录必须包含App_Data/jobs/triggered/<你的WebJob名称>/路径,所有WebJob执行文件放在该目录下
如果zip包直接把执行文件放在根目录,会被部署到站点wwwroot目录,无法被识别为WebJob,导致部署异常。 - 原部署命令存在两处可补充的参数:
默认CLI部署超时时间较短,大包/网络慢的场景下会触发超时报错,可增加--timeout参数延长超时时间(单位为秒)
WebJob包通常已预编译完成,不需要SCM站点执行远程构建,增加--build-remote false参数跳过不必要的构建步骤,避免构建超时
注意原命令中的ResourecGroup为拼写错误,正确拼写为ResourceGroup
修正后的部署命令参考:
az login -u <username> az account set --subscription <subscription_name> az webapp deployment source config-zip -g <ResourceGroup> -n <WebAppName> --src <pathetozipfile> --timeout 600 --build-remote false
- 检查SCM站点访问权限:如果App Service的SCM站点配置了IP访问限制,需要确认你当前操作机器的公网IP已加入白名单,否则部署请求会被拦截,出现202超时问题。
WebJob Pending Restart状态解决步骤
- 先完整停止App Service实例,等待3~5分钟确认进程完全释放后再重新启动,不要直接执行重启操作,避免残留进程锁死状态。
- 进入App Service的Kudu控制台(高级工具),打开Debug Console,进入
site/wwwroot/App_Data/jobs/对应的WebJob目录,手动删除旧的WebJob文件后重新执行部署。 - 检查App Service的
Always On配置是否已开启:连续运行的WebJob必须开启Always On配置,否则App Service空闲回收后会导致WebJob无法正常启动,循环触发重启。 - 查看WebJob运行日志排查启动失败原因:日志路径为
App_Data/jobs/<continuous/triggered>/<你的WebJob名称>/job_log.txt,常见启动失败原因包括运行时依赖缺失、执行文件权限不足、启动脚本报错等,修复对应问题后即可恢复正常。 - 若CLI部署持续超时,可直接将符合结构要求的zip包拖拽到Kudu控制台的
site/wwwroot目录,Kudu会自动完成解压部署,过程中可看到实时部署日志,更易定位问题。
内容的提问来源于stack exchange,提问作者user16252006
相关产品推荐
相关产品推荐

