asp.net如何读取在.net 中的弹性魔豆环境属性?

标签: Asp.net .Net
发布时间: 2017/3/26 2:14:48
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

怎样读取环境属性从我 AWS 弹性 Beanstalk 应用程序在这里找到︰

Configuration > Software Configuration > Environment Properties

enter image description here

以下方法都没有工作︰

ConfigurationManager.AppSettings["MyServiceUrl"]
ConfigurationManager.AppSettings["aws:elasticbeanstalk:application:environment.MyServiceUrl"]
Environment.GetEnvironmentVariable("MyServiceUrl")
Environment.GetEnvironmentVariable("aws:elasticbeanstalk:application:environment.MyServiceUrl")

完全限定名称尝试来自AWS EB 文档

有什么想法?

解决方法 1:

在你 .ebextensions/myoptions.config 文件︰

option_settings:
  - option_name: MyServiceUrl
    value: change me

(像你已经看到的),这将在您的 EB 环境属性部分中添加"MyServiceUrl"选项。在部署时,这将添加到以下你 Web.Config 文件︰

<appSettings>
  <add key="MyServiceUrl" value="change me" />
</appSettings>

如果是您到您的 EC2 实例 RDP,你还会看到这。

使用 EB 控制台的属性更改时,将修改的设置,在你 Web.Config 文件。

所以您访问此属性使用标准 AppSettings 方法︰

string value = ConfigurationManager.AppSettings["MyServiceUrl"];

关键点︰

您需要确保您 Web.Config 文件不包含此设置,否则它不能代替 EB。如果你 Visual Studio 部署程序包中包含此设置,然后 EB 不会取代它,当您通过您的代码中访问属性时,你总是会得到部署的值。

解决方法︰

在你 Web.Release.config 文件,删除在 Visual Studio 部署过程中的设置︰

<appSettings>
  <add key="MyServiceUrl" xdt:Transform="Remove" xdt:Locator="Match(key)" />
</appSettings>

这将删除该设置从 Web.Config 在 Visual Studio 部署过程中,并将允许 EB EB 部署过程中添加到文件的值。

官方微信
官方QQ群
31647020