gpt4 book ai didi

amazon-web-services - awsdeploy -> msdeploy -> runCommand 超时

转载 作者:行者123 更新时间:2023-12-04 04:45:12 25 4
gpt4 key购买 nike

我正在使用 awsdeploy 部署一个弹性 beantalk ASP.NET MVC 应用程序。该应用程序需要只能通过运行 .msi 安装程序 (CRRuntime_64bit_13_0_6.msi) 安装的 Crystal Reports。

为了将安装程序作为部署的一部分运行,我添加了一个自定义目标,如下所示:

<!--install msi-->
<Target Name="InstallCrystalReports" AfterTargets="AddIisSettingAndFileContentsToSourceManifest">
<Message Text="Install Crystal Reports msi" />
<ItemGroup>
<MsDeploySourceManifest Include="runCommand">
<Path>c:\mypath\installCrystalReports.cmd</Path>
<waitAttempts>20</waitAttempts>
<waitInterval>300000</waitInterval>
<dontUseCommandExe>false</dontUseCommandExe>
<AdditionalProviderSettings>waitAttempts;waitInterval;dontUseCommandExe</AdditionalProviderSettings>
</MsDeploySourceManifest>
</ItemGroup>
</Target>

安装可能需要大约一分钟,我可以查看安装程序创建的日志文件以查看它是否已启动。但是,runCommand 只会让它运行最多 5 秒,然后因错误而终止它。更改 waitAttempts 和 waitInterval 似乎没有影响。

下面是“C:\Program Files\Amazon\ElasticBeanstalk\logs\AWSDeployment.log”的摘录,它显示了 awsdeploy/msdeploy 如何提前终止安装。
2013-08-19 12:42:11,428 INFO 5 DeploymentLog - C:\mypath>msiexec /i  CRRuntime_64bit_13_0_6.msi /quiet /norestart /l C:\mypath\CRRuntime_64bit_13_0_6.txt 

2013-08-19 12:42:12,426 WARN 1 AWSBeanstalkCfnDeploy.DeploymentUtils - The process 'C:\Windows\system32\cmd.exe' (command line '') is still running. Waiting for 1000 ms (attempt 1 of 5).
2013-08-19 12:42:12,426 WARN 1 DeploymentLog - The process 'C:\Windows\system32\cmd.exe' (command line '') is still running. Waiting for 1000 ms (attempt 1 of 5).
2013-08-19 12:42:13,440 WARN 1 AWSBeanstalkCfnDeploy.DeploymentUtils - The process 'C:\Windows\system32\cmd.exe' (command line '') is still running. Waiting for 1000 ms (attempt 2 of 5).
2013-08-19 12:42:13,440 WARN 1 DeploymentLog - The process 'C:\Windows\system32\cmd.exe' (command line '') is still running. Waiting for 1000 ms (attempt 2 of 5).
2013-08-19 12:42:14,454 WARN 1 AWSBeanstalkCfnDeploy.DeploymentUtils - The process 'C:\Windows\system32\cmd.exe' (command line '') is still running. Waiting for 1000 ms (attempt 3 of 5).
2013-08-19 12:42:14,454 WARN 1 DeploymentLog - The process 'C:\Windows\system32\cmd.exe' (command line '') is still running. Waiting for 1000 ms (attempt 3 of 5).
2013-08-19 12:42:15,468 WARN 1 AWSBeanstalkCfnDeploy.DeploymentUtils - The process 'C:\Windows\system32\cmd.exe' (command line '') is still running. Waiting for 1000 ms (attempt 4 of 5).
2013-08-19 12:42:15,468 WARN 1 DeploymentLog - The process 'C:\Windows\system32\cmd.exe' (command line '') is still running. Waiting for 1000 ms (attempt 4 of 5).
2013-08-19 12:42:16,482 WARN 1 AWSBeanstalkCfnDeploy.DeploymentUtils - The process 'C:\Windows\system32\cmd.exe' (command line '') is still running. Waiting for 1000 ms (attempt 5 of 5).
2013-08-19 12:42:16,482 WARN 1 DeploymentLog - The process 'C:\Windows\system32\cmd.exe' (command line '') is still running. Waiting for 1000 ms (attempt 5 of 5).
2013-08-19 12:42:16,482 ERROR 1 AWSBeanstalkCfnDeploy.DeploymentUtils - Exception during deployment.

任何想法如何增加超时以便安装程序运行成功?或者任何其他想法如何让安装程序作为部署的一部分运行?

最佳答案

在 AWS Elastic Beanstalk 实例上安装 MSI 包的更简单方法是使用 .ebextensions机制。

在您的项目中创建一个名为 .ebextensions 的文件夹,并在其中放置一个扩展名为 .config 的文件(例如 installs.config )。这是一个 YAML 文件,它描述了要执行的安装以及在部署之前要在每个实例上运行的命令。一个简单的例子可能看起来像这样

packages:
msi:
CrystalReports: http://myfilehost.com/packages/CrystalReports.msi

如果 URL 是可公开访问的位置,您可以放置​​您的 MSI。例如,这可能在 S3 存储桶中。

有关 AWS Elastic Beanstalk 自定义功能的更多详细信息,请访问: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-windows-ec2.html

可以在 AWS 开发人员博客上找到该功能的概述,此处: http://blogs.aws.amazon.com/net/post/Tx1RLX98N5ERPSA/Customizing-Windows-Elastic-Beanstalk-Environments-Part-1

关于amazon-web-services - awsdeploy -> msdeploy -> runCommand 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18306045/

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