gpt4 book ai didi

.net - 在 AWS Elastic Beanstalk 上部署 Windows 服务和 Web 应用程序

转载 作者:行者123 更新时间:2023-12-04 02:09:59 24 4
gpt4 key购买 nike

我们想将 ASP.NET MVC Web 应用程序和 Windows 服务部署到弹性 beantalk。我们使用 awsdeploy.exe 来处理 Web 应用程序的部署。该服务和 Web 应用程序共享配置和库。为了部署服务,我的计划是:

  • 将windows服务exe包含在web部署包\bin目录下,将服务和web应用一起部署
  • 使用 .ebextensions 文件安装服务

  • 但是,这似乎不起作用,因为在安装 webdeploy 包之前执行 .ebextensions 操作,因此无法安装服务 exe。

    看来我的选择是:

    S3

    压缩服务 exe 并将其发布到 S3,以便在部署 Web 应用程序时可以通过 .ebextensions 安装它。

    这并不理想,因为服务和 Web 应用程序共享依赖项 + 配置。该服务需要安装一组单独的依赖项和配置,因为它需要在 Web 应用程序更新之前启动并运行。

    部署后脚本

    使用不受支持的 post deployment script technique我需要将其转换为 Windows 世界。

    Windows 目录 = C:\Program Files\Amazon\ElasticBeanstalk\hooks\appdeploy\post
    那里有一个 .ps1 脚本文件。 (是否支持 .cmd?)

    使用 Web 部署包作为 .ebextensions zip 源

    我们可以使用 webdeploy 包@“C:\cfn\ebdata\source_bundle.zip”作为源,解压缩它并从那里安装服务。问题是 zip 中的内部路径取决于用户机器的构建方式,因此在解压缩的文件结构中找到 exe 会很棘手。示例路径 = "Content\C_C\gitdeploy\blah\blahSolution\blahProject\obj\awsTestDebug\Package\PackageTmp\bin\myservice.exe"

    关于采取哪种方法的任何建议?

    编辑

    根据吉姆的建议,我使用了 container_commands 并且效果很好。我的 .ebextensions/install.config 看起来像这样..
    ...
    container_commands:
    installTaskRunner:
    command: C:\\inetpub\\wwwroot\\App_Data\\installTaskRunner.cmd >> C:\\inetpub\\wwwroot\\App_Data\\installTaskRunner.log
    commands:
    stop_service:
    command: net stop MyService
    ignoreErrors: true
    ...

    批处理文件看起来像这样......
    pushd C:\inetpub\wwwroot\bin
    C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\installutil MyService.exe
    net start MyService
    popd

    编辑 #2

    向 instal.config 添加了附加命令以在应用 webdeploy 包之前停止服务,因为 service.exe 锁定了一些部署文件。

    最佳答案

    关于部署后脚本,这些文件夹之一中带有 .ps1、.bat 或 .exe 的任何文件都将在该阶段运行。如果您需要对实例上发生的事情进行精细控制,则可以使用此方法。

    还有第三种选择,即使用 container_commands: 而不是 commands:
    container_commands:将在应用程序部署后运行。

    相关文档可以在 Elastic Beanstalk Developer Guide 中找到。 .

    关于.net - 在 AWS Elastic Beanstalk 上部署 Windows 服务和 Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20647913/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com