我正在尝试建立一个多环境Elastic Beanstalk ASP MVC解决方案。
特定于环境的设置(如连接字符串和远程端点)存储在web.config中。
This article让我相信应该可以在配置"修改软件"上定义属性。 - > "环境属性"我的Elastic Beanstalk环境配置部分。该文章与该页面相关联。
为了测试这一点,我使用单一环境创建了一个Elastic Beanstalk应用程序。在配置 - > "修改软件"第一页定义了一个属性KEY1
,其值为custom1
然后我在Visual Studio 2017中设置了一个新的ASP MVC 5 .NET 4.6.1 Web解决方案,其中只有一个控制器/操作,它只是循环遍历ConfigurationManager.AppSettings
和Environment.GetEnvironmentVariables( )
并将它们呈现在页。
在web.config中我有
<appSettings>
<add key="KEY1" value="default1"/>
<add key="KEY2" value="default2"/>
...
</appSettings>
当我在elasticbeanstalk.com网址上查看该页面时,我看不到环境属性的值!相反,我看到了:
KEY1 = default1
KEY2 = default2
我期望的地方
KEY1 = custom1
KEY2 = default2
在Environment.GetEnvironmentVariables( )
的输出中,我看不到KEY1
或KEY2
文档明确说明了
Elastic Beanstalk不支持将环境变量传递给.NET Core应用程序和使用部署清单的多应用程序IIS部署
但这是一个经典的ASP MVC 5应用程序。
我错过了什么?
答案 0 :(得分:1)
找到答案in this Stack Overflow post。
我遗漏的是,只有在<appsettings>
的{{1}}部分中尚未存在param时,才会添加该参数。
这是一个惊喜,来自Octopus Deploy,其中 的密钥存在于web.config
中。