Azure DevOps CD流水线执行时进程返回退出码134如何解决
排查处理方案
Exit code 134对应Node.js进程异常中止(SIGABRT信号触发),结合场景是IIS部署任务脚本执行报错,可按以下顺序排查:
- 开启流水线调试日志获取详细报错
在流水线变量中新增system.debug变量,值设为true后重新运行任务,查看日志中Node.js执行的具体报错栈,定位是脚本逻辑、依赖还是系统层面的问题。 - 验证Node.js版本兼容性
该任务调用的是Agent内置的Node 10版本,版本过老可能和新版IIS部署任务的依赖不兼容:- 升级Azure DevOps Agent到最新正式版,更新内置Node运行时
- 若无法升级Agent,可在部署任务前添加环境变量,指定更高版本的Node.js路径作为执行环境
- 检查Agent运行权限
Azure DevOps Agent的运行身份需要拥有目标虚拟机的管理员权限,同时具备IIS配置修改权限、站点物理目录读写权限:
手动使用Agent运行身份启动CMD,执行以下命令复现执行逻辑,查看本地运行的报错信息:"C:\azagent\A2\externals\node10\bin\node.exe" "C:\azagent\A2\_work\_tasks\IISWebAppDeploymentOnMachineGroup_1b467810-6725-4b6d-accd-886174c09bba\0.184.2\deployiiswebapp.js" - 调整Node.js内存上限
Node 10默认内存上限较低,若部署包体积过大、配置项过多会触发内存溢出导致进程中止:
在部署任务前添加系统环境变量NODE_OPTIONS,值设为--max-old-space-size=4096,将内存上限调整为4GB后重试。 - 排查部署任务配置错误
先关闭IIS部署任务中的XML变量替换、配置转换等可选功能,仅保留基础的文件部署+IIS站点绑定逻辑验证:
检查站点名称、应用程序池名称、物理路径、部署包路径等必填参数是否存在拼写错误、不存在的资源路径等问题。 - 清理任务缓存
若本地任务脚本缓存损坏也会导致执行异常,删除C:\azagent\A2\_work\_tasks\IISWebAppDeploymentOnMachineGroup_1b467810-6725-4b6d-accd-886174c09bba\0.184.2目录后重新运行流水线,让Agent重新拉取任务脚本再执行。
内容的提问来源于stack exchange,提问作者Kanchan Narula
相关产品推荐
相关产品推荐

