Amazon-Web-Services
Elastic Beanstalk .ebextensions 配置腳本未在 Windows 部署上執行
我有一個通過 Elastic Beanstalk 成功部署到伺服器的 Microsoft ASP.NET 應用程序。
但是,我試圖在 .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
此命令應下載安裝程序(可通過伺服器訪問)並執行包。
問題是我沒有看到任何跡象表明文件已下載,或者腳本甚至試圖由彈性 beanstalk 程序執行。
我檢查了以下內容:
- .ebextensions 下的配置文件包含在解決方案中,我已檢查它們是否已部署到伺服器。
- 伺服器可以訪問我嘗試下載的任何文件。
- 應用程序執行正常,只是這個初始化腳本不起作用。
- 我已經嘗試部署到 Windows 2008 IIS 7.5 和 Windows 2012 IIS 8.5,但都無法正常工作。
任何幫助弄清楚這一點將不勝感激。
謝謝,
我通過確保在 VS 中包含項目中的所有文件來解決了這個問題。
我認為通過將腳本標記為Content / Copy Always,它們將包含在目標中,但它們位於 bin 文件夾下。問題是 .ebextensions 需要位於站點的根目錄,您只能通過在“打包/發布 Web ”下選擇“包含所有文件”選項來實現這一點。這將複製站點根目錄下的 .ebextensions,然後由 Elastic Beanstalk 工作人員獲取。
在將文件建構操作設置為“內容”後,我能夠讓 ebextensions 執行。
右鍵點擊文件 > 屬性 > 建構操作。設置為“內容”
使用線上解析器驗證文件內容是否有效也很有幫助。