【问题标题】:How can I use service configuration in Azure from application level?如何从应用程序级别使用 Azure 中的服务配置?
【发布时间】:2016-12-28 22:33:16
【问题描述】:

我有一些用 C# 实现的云服务。整个解决方案由具有一些设置的服务项目、多个角色的单独项目+一个具有应用程序主要逻辑的单独项目组成。现在,我需要根据运行环境来区分应用程序 url。我知道(怀疑可能是更好的词选择)我可以通过添加<Setting name="domain" value="example.com" />来修改ServiceConfiguration.<Cloud|Local>.cscfg文件

现在,我想问的问题是:如何从源代码中访问此配置值?

【问题讨论】:

  • 您是否在询问如何通过代码读取这些配置设置?正常的阅读方式是:RoleEnvironment.GetConfigurationSettingValue(configurationSettingsKey).
  • 是的,我是。但是是否可以从包含主应用程序逻辑的不同项目中获取为一个项目(角色或云服务)配置的配置设置?

标签: c# .net azure app-config


【解决方案1】:

是的,这当然是可能的。因此,如果您有一个云项目A 并且有一个设置<Setting name="domain" value="exampleA.com" />,然后您有一个云项目B 有一个设置<Setting name="domain" value="exampleB.com" />,那么您就有了在云项目A 和B 中使用的主项目.

当您运行项目 A 并从主项目中读取设置 domain 时,您将获得 exampleA.com,当您运行项目 B 并读取相同的设置时,您将获得 exampleB.com

【讨论】:

  • 谢谢。但是,尽管我想在云应用程序中设置一个变量,在该应用程序中我有本地和云文件,并根据正在运行的环境(计算模拟器或实际天蓝色)从所有项目访问这些配置到这些值。
  • 啊,我明白了……在这种情况下,您的代码会有些复杂。一种可能性是为模拟器和云分别设置(按名称)。其他可能性是在 ServiceConfiguration.local.cscfg' and ServiceConfiguration.cloud.cscfg` 中始终使用不同的值。
【解决方案2】:

我添加到 ServiceConfigurationCloud.cscfg 和 ServiceConfigurationLocal.cscfg

<ConfigurationSettings>
<Setting name="DataBaseConnectionString" value="Data Source=MYNAME.database.windows.net;Initial Catalog=MYDATABASE;Persist Security Info=True;User ID=USERNAME;Password=PASSWORD"/>
</ConfigurationSettings>

然后我添加到ServiceDefinition.csdef文件中。

<ConfigurationSettings>
  <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" />
  <Setting name="DataBaseConnectionString"/>
</ConfigurationSettings>

在代码中我可以通过使用从文件中读取

string DBCO = RoleEnvironment.GetConfigurationSettingValue("DataBaseConnectionString");

【讨论】:

    猜你喜欢
    • 2020-08-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-22
    • 1970-01-01
    • 2017-05-05
    • 2011-12-14
    • 2020-08-13
    • 1970-01-01
    相关资源
    最近更新 更多