如何在 ASP MVC 中使用 Elastic Beanstalk 环境属性
How to use Elastic Beanstalk environment properties in ASP MVC
我正在尝试设置多环境 Elastic Beanstalk ASP MVC 解决方案。
环境特定设置,例如连接字符串和远程端点存储在 web.config。
This article 让我相信应该可以在我的 Elastic Beanstalk 环境配置的 Configuration "Modify software" -> "Environment properties" 部分定义属性。文章链接自该页面。
为了对此进行测试,我创建了一个具有单一环境的 Elastic Beanstalk 应用程序。在配置 -> "Modify software" 页面上,我定义了一个 属性 KEY1
值 custom1
然后我在 Visual Studio 2017 年设置了一个新的 ASP MVC 5 .NET 4.6.1 网络解决方案,其中一个 controller/action 简单地循环遍历 ConfigurationManager.AppSettings
和 Environment.GetEnvironmentVariables( )
并将它们呈现在页面上。
在web.config我有
<appSettings>
<add key="KEY1" value="default1"/>
<add key="KEY2" value="default2"/>
...
</appSettings>
当我在 elasticbeanstalk.com URL 上查看页面时,我没有从我的环境属性中看到值!相反,我看到:
KEY1 = default1
KEY2 = default2
我期望的地方
KEY1 = custom1
KEY2 = default2
并且在 Environment.GetEnvironmentVariables( )
的输出中我没有看到 KEY1
或 KEY2
文档明确指出
Elastic Beanstalk doesn't support passing environment variables to .NET Core applications and multiple-application IIS deployments that use a deployment manifest
但这是一个经典的 ASP MVC 5 应用程序。
我错过了什么?
找到答案in this Stack Overflow post。
我遗漏的事实是,只有在 web.config
.
的 <appsettings>
部分不存在该参数时才会添加该参数
这是一个惊喜,来自 Octopus Deploy,其中键 has 存在于 <appSettings>
。
我正在尝试设置多环境 Elastic Beanstalk ASP MVC 解决方案。
环境特定设置,例如连接字符串和远程端点存储在 web.config。
This article 让我相信应该可以在我的 Elastic Beanstalk 环境配置的 Configuration "Modify software" -> "Environment properties" 部分定义属性。文章链接自该页面。
为了对此进行测试,我创建了一个具有单一环境的 Elastic Beanstalk 应用程序。在配置 -> "Modify software" 页面上,我定义了一个 属性 KEY1
值 custom1
然后我在 Visual Studio 2017 年设置了一个新的 ASP MVC 5 .NET 4.6.1 网络解决方案,其中一个 controller/action 简单地循环遍历 ConfigurationManager.AppSettings
和 Environment.GetEnvironmentVariables( )
并将它们呈现在页面上。
在web.config我有
<appSettings>
<add key="KEY1" value="default1"/>
<add key="KEY2" value="default2"/>
...
</appSettings>
当我在 elasticbeanstalk.com URL 上查看页面时,我没有从我的环境属性中看到值!相反,我看到:
KEY1 = default1
KEY2 = default2
我期望的地方
KEY1 = custom1
KEY2 = default2
并且在 Environment.GetEnvironmentVariables( )
的输出中我没有看到 KEY1
或 KEY2
文档明确指出
Elastic Beanstalk doesn't support passing environment variables to .NET Core applications and multiple-application IIS deployments that use a deployment manifest
但这是一个经典的 ASP MVC 5 应用程序。
我错过了什么?
找到答案in this Stack Overflow post。
我遗漏的事实是,只有在 web.config
.
<appsettings>
部分不存在该参数时才会添加该参数
这是一个惊喜,来自 Octopus Deploy,其中键 has 存在于 <appSettings>
。