我有一个 Microsoft ASP.NET 应用程序,正在通过 Elastic Beanstalk 成功部署到服务器。
但是,我正在尝试运行 .ebextensions 下的几个配置文件,以便设置我的应用程序使用的某些包。
例如我安装的NewRelic脚本如下:
files:
"c:\\temp\\redistribution\\newrelic\\NewRelicDotNetAgent_x64.msi":
source: http://download.newrelic.com/dot_net_agent/release/NewRelicDotNetAgent_x64.msi
commands:
instNewRelic:
command: msiexec.exe /i c:\\temp\\redistribution\\newrelic\\NewRelicDotNetAgent_x64.msi /qb NR_LICENSE_KEY=<mylicense here> INSTALLLEVEL=1
iisRestart:
command: c:\\windows\\system32\\iisreset.exe /RESTART
此命令应下载安装程序(可通过服务器访问)并运行该包。
问题是我没有看到任何迹象表明文件已被下载,或者甚至试图由弹性 beantalk 进程运行脚本。
我已检查以下内容:
- .ebextensions 下的配置文件包含在解决方案中,我已检查它们已部署到服务器。
- 服务器可以访问我尝试下载的任何文件。
- 应用程序运行正常,只是初始化脚本不起作用。
- 我曾尝试部署到 Windows 2008 IIS 7.5 和 Windows 2012 IIS 8.5,但都不起作用。
如能得到任何帮助解决这个问题,我们将不胜感激。
谢谢,
答案1
将文件构建操作设置为“内容”后,我能够运行 ebextensions。
右键点击文件 > 属性 > 构建操作。设置为“内容”
使用在线解析器验证文件内容是否有效也很有帮助。
答案2
我通过确保在 VS 中包含项目中的所有文件来解决了这个问题。
我认为通过将脚本标记为内容/始终复制它们将包含在目标中,但它们位于 bin 文件夹下。问题是 .ebextensions 需要位于网站的根目录下,您只能通过选择打包/发布 Web选项包括所有文件。这将复制站点根目录中的 .ebextensions,然后由 Elastic Beanstalk 工作者获取。