如何在 ASP MVC 中使用 Elastic Beanstalk 环境属性

Posted

技术标签:

【中文标题】如何在 ASP MVC 中使用 Elastic Beanstalk 环境属性【英文标题】:How to use Elastic Beanstalk environment properties in ASP MVC 【发布时间】:2018-11-04 16:36:30 【问题描述】:

我正在尝试设置多环境 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.AppSettingsEnvironment.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( ) 的输出中,我看不到KEY1KEY2

文档明确指出

Elastic Beanstalk 不支持将环境变量传递给使用部署清单的 .NET Core 应用程序和多应用程序 IIS 部署

但这是一个经典的 ASP MVC 5 应用程序。

我错过了什么?

【问题讨论】:

【参考方案1】:

找到答案in this Stack Overflow post。

我缺少的是只有在 web.config&lt;appsettings&gt; 部分中不存在该参数时才会添加该参数。

这是一个惊喜,来自 Octopus Deploy,其中密钥 必须 存在于 &lt;appSettings&gt;

【讨论】:

以上是关于如何在 ASP MVC 中使用 Elastic Beanstalk 环境属性的主要内容,如果未能解决你的问题,请参考以下文章

asp.net mvc 如何添加css

如何在 ASP.NET MVC 模型验证中检查字符串是不是包含 HTML 代码?

如何在 ASP.NET MVC/Web 控制器中返回 JSON?

如何在 ASP.NET MVC 3 的一个解决方案中从另一个项目获取文件路径?

asp.net mvc2.0中如何将datatable对象传到view的前台然后获取datatable中表字段得值?

ASP.NET MVC 中的登录会话