簡體   English   中英

調用Msdeploy時,AWS Code Deploy失敗

[英]AWS Code Deploy Fails When Calling Msdeploy

我正在設置構建過程以利用自動縮放組的AWS代碼部署。 我已經設法使用appspec.yml和BeforeInstall.bat文件構建和壓縮代碼,所有文件都正確地移動到S3。 代碼部署正確拉下zip文件,解壓縮並調用BeforeInstall.bat。 批處理文件有3個步驟

  1. 停止應用程序池
  2. 停止一個網站
  3. 請致電website.deploy.cmd

它正確地完成了第1步和第2步,但是當它到達第3步時,它調用msdeploy並返回此錯誤:

Error: There was an error reading IIS configuration schema from 'C:\\Windows\\system32\\inetsrv\\config\\schema\\'

認為這可能是權限問題,我登錄到其中一個服務器並手動運行cmd腳本。 它部署很好,這並不奇怪,因為我以管理員身份登錄。 然后我打開了一個PowerShell腳本作為LocalSystem用戶(這是CodeDeploy Host Agent Service運行的CodeDeploy Host Agent Service )並運行cmd腳本。 它成功完成。 我將整個批處理文件作為LocalSystem用戶運行。 它運行成功。

然后我返回並將echo %username%添加到批處理腳本,提交,構建並運行新部署。 我在代碼中看到這個用戶部署日志WIN-49GNL2FRHJ4$ 部署仍然失敗。 當我以Administrator身份從powershell窗口運行該框上的批處理腳本時,我當然看到Administrator回應了。 腳本成功。 當我從powershell窗口運行批處理腳本作為LocalSystem我看到WIN-49GNL2FRHJ4$ ,就像它通過AWS控制台從CodeDeploy運行一樣,但它成功運行。

AWS控制台如何將該批處理文件作為LocalSystem用戶調用以及如何通過PowerShell窗口將其作為該用戶調用,這有何不同?

看起來問題是安裝了舊版本的Web Deploy。 我去尋找日志並意識到我已經以某種方式安裝了v2(可能是我將IIS安裝到EC2實例時的默認設置)。 我下載並安裝了最新版本(撰寫本文時為v 3.6)並創建了一個新部署。 代碼按預期部署。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM