VSTS发布错误" IIS Web App Manage"步骤与AppCmd"没有足够的存储空间来处理此命令。"

时间:2018-02-09 11:45:04

标签: azure-devops appcmd

在Visual Studio Team Services / VSTS中基于" IIS网站部署"进行简单的两步版本定义。模板设置为配置应用程序池(v4,集成,应用程序池标识)和网站(http,192.168.0.xxx局域网IP,端口80,有效主机名),这是一个错误,我很难找到任何细节上。将问题隔离到某些AppCmd参数但似乎无法通过步骤设置将其删除。

通过VSTS代理v2.127.0部署到2008 R2目标,安装时没有任何问题,但AppCmd始终在" IIS Web App Manage"步骤(重新配置应用程序池,创建目录等没有问题)然后退出代码8

  

hresult 80070008,无法提交配置更改。没有足够的存储空间来处理此命令。

下面的完整日志,但此行会导致错误

  

" C:\ Windows \ System32下\ INETSRV \ Appcmd.exe的" set site /site.name:"Example - Website Name" -applicationDefaults.applicationPool:"示例 - AppPool名称" - [path =' /']。[path =' /']。physicalPath:" D:\ Test \ Example - 网站名称" - [path =' /']。[path =' /']。userName: - [path =' /']。[path =& #39; /']密码:

直接在目标上运行它会产生相同的错误,如果我删除空白用户名&密码参数可行。检查我们是否尝试在网站上设置身份验证设置的凭据和组合,这两个参数不会以不会引发错误的方式消失或格式化。

尝试搜索类似的问题并且它无处可去,重新启动目标,以防内存问题,甚至尝试构建仅限网站的步骤,但错误仍然存​​在。

##[section]Starting: Configure IIS AppPool & Website
==============================================================================
Task         : IIS Web App Manage
Description  : Create or update a Website, Web App, Virtual Directories, and Application Pool
Version      : 0.5.4
Author       : Microsoft Corporation
Help         : [More Information](https://go.microsoft.com/fwlink/?linkid=839731)
==============================================================================
##[command]"C:\Windows\system32\inetsrv\appcmd.exe"  list apppool /name:"Example - AppPool Name"
##[command]"C:\Windows\system32\inetsrv\appcmd.exe"  set apppool /apppool.name:"Example - AppPool Name" -managedRuntimeVersion:v4.0 -managedPipelineMode:Integrated -processModel.identityType:ApplicationPoolIdentity
APPPOOL object "Example - AppPool Name" changed
##[command]"C:\Windows\system32\inetsrv\appcmd.exe"  list site /name:"Example - Website Name"
##[command]"C:\Windows\system32\inetsrv\appcmd.exe"  add site /name:"Example - Website Name" /physicalPath:"D:\Test\Example - Website Name"
SITE object "Example - Website Name" added
APP object "Example - Website Name/" added
VDIR object "Example - Website Name/" added
##[command]"C:\Windows\system32\inetsrv\appcmd.exe"  set site /site.name:"Example - Website Name" -applicationDefaults.applicationPool:"Example - AppPool Name" -[path='/'].[path='/'].physicalPath:"D:\Test\Example - Website Name" -[path='/'].[path='/'].userName: -[path='/'].[path='/'].password:
SITE object "Example - Website Name" changed
ERROR ( hresult:80070008, message:Failed to commit configuration changes.  

Not enough storage is available to process this command.

 )
##[error]Process 'appcmd.exe' exited with code '8'.
##[section]Finishing: Configure IIS AppPool & Website

1 个答案:

答案 0 :(得分:0)

与MS开发人员支持人员讨论后,我的问题似乎是目标服务器的 applicationHost.config 加密/安全密钥的问题,并且返回的错误消息不是很有用通过AppCmd

验证applicationHost.config出错的最简单方法是备份当前配置,然后恢复为applicationHost.config的原始默认副本(C:\ Windows \ System32 \ inetsrv \ config),然后重新启动W3SVC服务 - 能够执行" IIS Web App管理"之后没有任何问题。

不幸的是,保留它还不是一个选项,因此对配置的两个版本进行了分析,发现sessionKey中有两个<configuration><configProtectedData><providers>值不同的键

将已突出显示的密钥(AesProvider&amp; IISWASOnlyAesProvider)的版本从我们的干净配置复制到当前,重新启动W3SVC服务,并且相同的AppCmd系列能够成功运行。

将继续监控,因为这只发生在物理内部开发服务器上,其中有许多潜在的方式,applicationHost.config可能会在服务中意外更改 - 所有这些都不应用于生产系统