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

IISWebAppManagementOnMachineGroup报参数错误(退出码87)问题求助

IIS发布任务返回错误码87(参数不正确)排查方案

问题描述

调用流水线IISWebAppManagementOnMachineGroup任务向本地IIS发布应用时,任务抛出错误The Parameter is incorrect .. exited with code '87'。对应流水线此前运行正常,新建流水线重新执行后突发该问题,常规排查操作未解决。

已执行的无效排查操作

  • 重装IIS并删除所有MachineKeys,重装完成后将本机所有MachineKeys的所有者修改为当前管理员账户
  • 修改inetsrv目录下的applicationHost.config配置文件

已验证的问题特征

排查确认流水线执行IIS发布时自动生成的命令中,password参数为问题触发点:以管理员身份启动CMD执行移除password参数的appcmd命令,可正常完成站点配置,验证可用的命令如下:

appcmd.exe set site /site.name:"RTP_LoginService" -applicationDefaults.applicationPool:"RTP_LoginServiceAppPool" -[path='/'].[path='/'].physicalPath:"%SystemDrive%\inetpub\wwwroot\RTP_LoginService" -[path='/'].[path='/'].userName: -[path='/'].[path='/'].password:

当前未对IIS发布任务做任何配置修改,同版本任务此前携带password参数可正常运行。

根因说明

错误码87对应Windows系统级错误ERROR_INVALID_PARAMETER(参数非法),触发原因是近期Windows更新IIS相关安全补丁、或部署代理自动升级后,appcmd.exe收紧了参数校验逻辑:

  • 旧版本appcmd.exe会自动忽略末尾传递的空值、格式非法的password参数,可正常执行
  • 新版本appcmd.exe遇到空值、解密失败乱码格式的password参数时,会直接判定参数非法抛出错误
    多数场景下该问题是部署代理运行权限不足,无法正确解密流水线存储的站点凭据密码,导致传递给appcmd.exe的password字段为乱码/空值触发报错。

解决方案

按优先级依次尝试以下操作:

  • 调整任务物理路径凭据配置
    打开IISWebAppManagementOnMachineGroup任务配置页,找到物理路径身份验证设置项,若不需要自定义目录访问账户,直接选择「应用程序用户(传递身份验证)」,保存配置后重新运行流水线,任务生成命令时将不再携带空的password参数,直接复用应用程序池身份访问站点目录。
  • 修复自定义凭据配置
    若业务必须指定独立的物理路径访问用户,不要在配置项中留空密码字段,重新输入对应用户的正确密码后保存流水线;同时检查部署代理服务的运行身份,确保其属于本地管理员组,避免代理无权限解密存储的密码字段,导致传递给appcmd的参数格式非法。
  • 临时规避方案
    若上述操作不生效,可在流水线中禁用IISWebAppManagementOnMachineGroup任务的站点配置步骤,新增内联脚本步骤,直接执行已经验证可用的appcmd命令完成站点配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 15:57:14