[错误]进程'appcmd.exe'退出,代码为'87'

时间:2018-01-29 07:16:43

标签: deployment

我是tfs-2018的新用户,我正在尝试在我的一台服务器上进行部署,但在日志中遇到错误。我能够在其他2个系统上部署,但是一个系统正在发出波纹管错误。任何帮助将不胜感激

记录:

  

2018-01-29T06:55:20.8002862Z ## [section]开始:IIS Web App管理   2018-01-29T06:55:20.8484384Z ======================================== ======================================

     

2018-01-29T06:55:20.8484384Z任务:IIS Web App管理   2018-01-29T06:55:20.8484384Z描述:创建或更新网站,Web应用程序,虚拟目录和应用程序池   2018-01-29T06:55:20.8484384Z版本:0.4.4   2018-01-29T06:55:20.8484384Z作者:Microsoft Corporation   2018-01-29T06:55:20.8484384Z帮助:More Information   2018-01-29T06:55:20.8484384Z ======================================== ======================================

     

2018-01-29T06:55:24.2725407Z ## [command]“C:\ Windows \ system32 \ inetsrv \ appcmd.exe”list app“Default Web Site / PDM”   2018-01-29T06:55:24.4872952Z ## [command]“C:\ Windows \ system32 \ inetsrv \ appcmd.exe”set app /app.name:"Default Web Site / PDM“ - [path ='/' ] .physicalPath:“E:\ inetpub \ wwwroot \ PDM” - [path ='/']。userName: - [path ='/'] .password:   2018-01-29T06:55:24.7066288Z APP对象“默认网站/ PDM”已更改   2018-01-29T06:55:24.7066288Z错误(hresult:80070057,消息:无法提交配置更改。
  2018-01-29T06:55:24.7998202Z   2018-01-29T06:55:24.7998202Z参数不正确。   2018-01-29T06:55:24.7998202Z   2018-01-29T06:55:24.7998202Z)   2018-01-29T06:55:25.1905059Z ## [错误]进程'appcmd.exe'退出,代码为'87'。   2018-01-29T06:55:25.3169881Z ## [section]整理:IIS Web App管理

以下是附带的配置详情。

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:2)

我在一台Windows Server 2012 R2上有类似的症状-在所有其他Windows Server 2012 R2上都可以使用。

症状

"C:\Windows\system32\inetsrv\appcmd.exe"  set app /app.name:"Default Web Site/foo" -applicationPool:"foo" -[path='/'].physicalPath:"C:\temp\foo" -[path='/'].userName: -[path='/'].password:

ERROR ( hresult:80070057, message:Failed to commit configuration changes. 
The Parameter is incorrect.
)

我们试图找出正在发生的情况,并发现appcmd.exe password参数不起作用。

省略password参数时,该命令将正常运行:

"C:\Windows\system32\inetsrv\appcmd.exe"  set app /app.name:"Default Web Site/foo" -applicationPool:"foo" -[path='/'].physicalPath:"C:\temp\foo" -[path='/'].userName:

另一个导致我们问题根源的症状是:

通过mgmnt控制台为Physical Path credentials指定VirtualDirectory也是行不通的。

解决方案

对我们来说,问题在于IIS Configuration Key损坏。这使我们无法对applicationhost.config

中的密码进行加密

我们通过从另一台测试机导入IIS Configuration Key来解决了该问题。

重新安装IIS效果很好(如果我们在生产服务器上遇到过此问题)

从正在运行的IIS服务器中导出配置密钥

aspnet_regiis -px "iisConfigurationKey" "C:\temp\iisConfigurationKey.xml" -pri

将配置密钥导入到相关的IIS服务器

aspnet_regiis -pi "iisConfigurationKey" "C:\temp\iisConfigurationKey.xml" 

替换AesProvider元素

最后,我们从AesProvider替换了applicationHost.config提供者元素  configProtectedData中包含工作的IIS服务器中的元素,然后重新启动IIS。