【问题标题】:CodeDeploy on Windows EC2 Permission DeniedWindows EC2 上的 CodeDeploy 权限被拒绝
【发布时间】:2018-02-12 04:53:01
【问题描述】:

只是在寻找一些关于在 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


    【解决方案1】:

    在我的情况下,“Permission denied @ 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
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 您可以在 appspec.yml 中使用 windows 样式的路径。另外,请省略 windows 的 hooks 部分中的 runas: 字段。
      • 请记住,一切都以 SYSTEM 用户身份在 32 位进程上执行。
      • 我在使用 VSTS 和 CodeDeploy 将 Windows 服务部署到 EC2 实例时遇到了这个问题。我相信这是因为该服务已经安装并正在运行,而我没有首先删除现有服务的机制。 (或者,停止服务并覆盖 exe)
      • @JamesMatson 我也有同样的问题。你是怎么解决你的?谢谢
      猜你喜欢
      • 1970-01-01
      • 2016-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-22
      • 2013-05-30
      • 2017-03-24
      • 2021-11-09
      相关资源
      最近更新 更多