Amazon web services 调用Msdeploy时AWS代码部署失败
我正在建立我们的构建过程,以利用自动缩放组的AWS代码部署。我已经成功地使用appspec.yml和BeforeInstall.bat文件构建并压缩了代码,所有这些文件都正确地升级到了S3。CodeDeploy正确地拉下zip文件,解压缩它并调用BeforeInstall.bat。批处理文件有3个步骤Amazon web services 调用Msdeploy时AWS代码部署失败,amazon-web-services,iis-8,msdeploy,aws-code-deploy,Amazon Web Services,Iis 8,Msdeploy,Aws Code Deploy,我正在建立我们的构建过程,以利用自动缩放组的AWS代码部署。我已经成功地使用appspec.yml和BeforeInstall.bat文件构建并压缩了代码,所有这些文件都正确地升级到了S3。CodeDeploy正确地拉下zip文件,解压缩它并调用BeforeInstall.bat。批处理文件有3个步骤 停止应用程序池 停止网站 请致电website.deploy.cmd 它正确地完成了步骤1和2,但当它完成步骤3时,它调用msdeploy并返回以下错误: 错误:从'C:\Windows\syst
错误:从'C:\Windows\system32\inetsrv\config\schema\'读取IIS配置架构时出错。
考虑到这可能是权限问题,我登录到其中一台服务器并手动运行cmd脚本。它部署得很好,这并不奇怪,因为我是以管理员身份登录的。然后,我以LocalSystem
用户的身份打开了一个powershell脚本(这是CodeDeploy Host Agent服务运行的身份),并运行了cmd脚本。它成功地完成了。我以LocalSystem
用户的身份运行了整个批处理文件。它成功地运行了
然后我返回并将echo%username%
添加到批处理脚本中,提交、构建并运行新部署。我在代码部署日志中看到这个用户WIN-49GNL2FRHJ4$
。部署仍然失败。当我以Administrator
的身份从powershell窗口在该框上运行批处理脚本时,我当然会看到Administrator
发出回声。脚本成功了。当我从powershell窗口以LocalSystem
的形式运行批处理脚本时,我会看到WIN-49GNL2FRHJ4$
,就像通过AWS控制台从CodeDeploy运行批处理脚本一样,但它成功运行
AWS控制台如何将批处理文件称为LocalSystem
用户与我如何通过powershell窗口将其称为该用户之间有什么不同?看起来问题在于安装了旧版本的Web Deploy。我去寻找日志,意识到我不知怎么安装了v2(可能是在EC2实例上安装IIS时的默认版本)。我下载并安装了最新版本(撰写本文时为V3.6),并创建了一个新的部署。代码按预期部署。看起来问题在于安装了旧版本的Web Deploy。我去寻找日志,意识到我不知怎么安装了v2(可能是在EC2实例上安装IIS时的默认版本)。我下载并安装了最新版本(撰写本文时为V3.6),并创建了一个新的部署。代码按预期部署