如何在 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.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 不支持将环境变量传递给使用部署清单的 .NET Core 应用程序和多应用程序 IIS 部署
但这是一个经典的 ASP MVC 5 应用程序。
我错过了什么?
【问题讨论】:
【参考方案1】:找到答案in this Stack Overflow post。
我缺少的是只有在 web.config
的 <appsettings>
部分中不存在该参数时才会添加该参数。
这是一个惊喜,来自 Octopus Deploy,其中密钥 必须 存在于 <appSettings>
。
【讨论】:
以上是关于如何在 ASP MVC 中使用 Elastic Beanstalk 环境属性的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ASP.NET MVC 模型验证中检查字符串是不是包含 HTML 代码?
如何在 ASP.NET MVC/Web 控制器中返回 JSON?
如何在 ASP.NET MVC 3 的一个解决方案中从另一个项目获取文件路径?