Azure devops “上的VSTS发布错误”;“IIS Web应用程序管理”;使用AppCmd“执行步骤”;存储空间不足,无法处理此命令。”;

Azure devops “上的VSTS发布错误”;“IIS Web应用程序管理”;使用AppCmd“执行步骤”;存储空间不足,无法处理此命令。”;,azure-devops,appcmd,Azure Devops,Appcmd,在Visual Studio Team Services/VSTS中有一个简单的两步发布定义,该定义基于“IIS网站部署”模板集,用于配置应用程序池(v4,集成,应用程序池标识)和网站(http,192.168.0.xxx LAN IP,端口80,有效主机名),它抛出了一个我一直难以找到详细信息的错误。隔离了一些AppCmd参数的问题,但似乎无法通过步骤设置删除它们 通过VSTS代理v2.127.0向外部署到2008 R2目标,VSTS代理v2.127.0安装时没有任何问题,但AppCmd在“I

在Visual Studio Team Services/VSTS中有一个简单的两步发布定义,该定义基于“IIS网站部署”模板集,用于配置应用程序池(v4,集成,应用程序池标识)和网站(http,192.168.0.xxx LAN IP,端口80,有效主机名),它抛出了一个我一直难以找到详细信息的错误。隔离了一些AppCmd参数的问题,但似乎无法通过步骤设置删除它们

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

hresult 80070008未能提交配置更改。存储空间不足,无法处理此命令

下面的日志已满,但此行导致错误

“C:\Windows\system32\inetsrv\appcmd.exe”设置站点/站点。名称:“示例-网站名称”-applicationDefaults.applicationPool:“示例-AppPool名称”-[path='/'].[path='/'.]物理路径:“D:\Test\Example-网站名称”-[path='/'.[path='/'.]用户名:--[path='/'.[path='/'.]密码:

直接运行在目标上会产生同样的错误,如果我删除空白的用户名和密码参数,它会起作用。选中,我们不会尝试针对网站设置凭据和身份验证设置的组合,这两个参数不会以不会引发错误的方式显示或格式化

尝试搜索类似的问题,结果一无所获,重新启动目标以防内存问题,甚至尝试只构建一个网站,但错误依然存在

##[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

在与MS Developer Support讨论后,我的问题似乎是目标服务器的applicationHost.config加密/安全密钥出现问题,AppCmd返回的错误消息不太有用

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

不幸的是,将其还原不是一个选项,因此不同于配置的两个版本,并在
中发现两个键具有不同的
sessionKey

将突出显示的键的版本(
AesProvider
&
IISWASOnlyAesProvider
)从我们的清理配置复制到当前,重新启动W3SVC服务,并且同一AppCmd行能够成功运行


将继续监视,因为这仅发生在物理内部开发服务器上,applicationHost.config在服务期间可能会以多种潜在方式意外更改—所有这些方式都不应应用于生产系统。

尝试通过目标计算机上的PowerShell任务调用appcmd.exe,并检查结果:挣扎着将AppCMD线重新格式化到PS下,这样就打开了建议,但是当我在本地登录时,通过手动运行AppCMD,当管理层从命令中删除空白用户名和密码时,它会返回同样的错误,然后用PosiS壳在目标机器任务上尝试它。正在努力将其格式化为在PS下运行,例如PS C:\Users\Administrator>和“C:\Windows\system32\inetsrv\appcmd.exe”设置站点/站点。名称:'Example-Website name'-[path='/'].[path='/'].。物理路径:'D:\Test\Example-Website name'错误(消息:格式错误的集合索引器;格式为[@position,name='value',name2='value2',…]。位置说明符是可选的,可以是“@start”、“@end”或“@N”,其中N是集合中的数字索引。)要添加-已联系的开发人员支持,它看起来像是与“加密不起作用”相关的问题,因此,在我进一步研究后,将更新重置applicationHost.config