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

Azure DevOps发布管道报错:appcmd.exe退出代码-2146893802求助

解决Azure DevOps发布时“Keyset does not exist”错误的方案

针对你遇到的ERROR ( hresult:80090016, message:Failed to commit configuration changes.<br />Keyset does not exist )及appcmd.exe退出码-2146893802问题,以下是针对性的排查和解决步骤:

  • 检查应用程序池标识的权限
    确认部署目标网站对应的应用程序池标识(格式为IIS AppPool\<你的应用池名称>)拥有以下路径的读取权限:

    • C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys
    • 网站SSL证书的私钥存储路径(若使用HTTPS绑定)
      操作方式:右键目标文件夹→属性→安全→添加上述池标识,勾选「读取」和「列出文件夹内容」权限后保存。
  • 重新生成机器密钥

    1. 打开IIS管理器,选中服务器节点,在功能视图中找到「机器密钥」
    2. 点击页面右侧的「生成密钥」按钮,随后保存配置
    3. 运行命令提示符执行 iisreset 重启IIS服务
  • 验证VPN环境下的证书有效性
    由于通过VPN访问目标环境,需确认:

    • 目标服务器本地证书存储中,网站绑定的SSL证书未过期、未被删除
    • 证书私钥的访问权限正确:打开证书管理器→找到对应证书→右键→「所有任务」→「管理私钥」→添加应用程序池标识并赋予读取权限
  • 清理Azure DevOps代理缓存
    登录部署代理所在服务器,找到代理安装目录下的_work文件夹,删除其中所有缓存文件,然后重启Azure DevOps代理服务。

  • 检查AppCmd执行的账户权限
    确认Azure DevOps代理服务运行的账户(默认是NT SERVICE\VSTSAgent)拥有修改目标服务器IIS配置的权限。可尝试手动使用该账户执行对应的appcmd命令,验证是否能正常完成配置修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 10:15:00