Windows EC2权限上的CodeDeploy被拒绝

问题描述 投票:1回答:2

只是寻找一些关于在Windows上执行CodeDeploy的建议。我已经在Linux机器上使用了一年,这是我在EC2上的第一个Windows Server,我似乎无法通过“Permission Denied”错误。

我在Windows上更改了文件夹中的权限,但部署在CodeDeploy上的安装步骤失败。

Error CodeUnknownError
Script Name
MessagePermission denied - c:/inetpub/render
Log Tail

appspec.yml

version: 0.0
os: windows
files:
 - source: /
   destination: /inetpub/render
hooks:
  AfterInstall:
    - location: aws/scripts/deploy.bat
      runas: administrator
      timeout: 1200

我尝试了Windows和Linux风格的路径(C:\ inetpub \ render),因为示例不清楚,但没有任何效果。

amazon-ec2 aws-code-deploy
2个回答
1
投票

在我的情况下,“权限被拒绝@ unlink_internal”是由dotnet.exe进程锁定其中一个dll引起的。您可以使用Microsoft Process Explorer找出锁定文件的内容。然后,您可以更新appspec.yml BeforeInstall挂钩以在文件更新之前终止进程:

version: 0.0
os: windows
files:
  - source: \files
    destination: C:\inetpub\wwwroot\yoursite
hooks:
  BeforeInstall:
    - location: stopsite.bat
      timeout: 300
      runas: Administrator
  AfterInstall:
    - location: startsite.bat
      timeout: 300
      runas: Administrator

其中stopsite.bat包含以下命令:

C:\Windows\System32\inetsrv\appcmd stop site "yoursite"
taskkill /IM "dotnet.exe" /F

0
投票

使用CodeDeploy时,Windows实例上的“Permision Denied”错误通常是因为您尝试depoloy的一个或多个文件已在使用中。 (可能是.exe已经运行,文件在记事本中打开等)。 请查看是否是这种情况,如果是这样,要么手动停止正在使用这些文件的进程,要么可以使用ApplicationStop,BeforeInstall挂钩来配置脚本,这些脚本将在进入安装之前停止任何正在运行的进程。

© www.soinside.com 2019 - 2024. All rights reserved.