CloudConfigurationManager.GetSetting不访问ServiceConfiguration.cscfg中的参数

时间:2014-08-12 15:38:57

标签: c# azure

我有两个用C#编写的Azure服务工作者角色。我需要从两个辅助角色所需的ServiceConfiguration.cscfg文件中加载一些配置。我创建了一个公共类,它读取配置参数并在两个角色中使用它。 在这两个角色中,我执行以下操作: 我在ServiceDefinition.csdef中添加了一个自定义属性,如下所示

<ConfigurationSettings>
  <Setting name="CustomProperty"/>
</ConfigurationSettings>

并在ServiceConfiguration.Local.cscfg中设置一个值,如下所示

<ConfigurationSettings>
  <Setting name="CustomProperty" value="local-value" />
</ConfigurationSettings>

在公共类的代码中,我尝试通过调用

来访问此属性
CloudConfigurationManager.GetSetting("CustomProperty");

由于某种原因,这会在一个角色中返回null,并在另一个角色中返回正确的值。当它失败时,它会将以下消息写入输出。

Getting "CustomProperty" from ServiceRuntime: FAIL.
Getting "CustomProperty" from ConfigurationManager: FAIL.

当然,如果我将它添加到app.config,它会读取它,但这不是我想要做的。我试图通过调用

来访问该属性
RoleEnvironment.GetConfigurationSettingValue("CustomProperty");

令人惊讶的是,它在两个角色中都有效并返回了正确的值。我需要使用方法&#34; CloudConfigurationManager.GetSetting&#34;因为它更标准,因为公共类也可以在从app.config读取配置的控制台应用程序中使用。导致CloudConfigurationManager.GetSetting失败的原因是什么,而不是配置文件中不存在该属性。

0 个答案:

没有答案