c# - CloudConfigurationManager.GetSetting 在生产中返回空字符串?

标签 c# azure

我刚刚将项目升级到 Azure Tools 1.8(2012 年 10 月 SDK),但遇到了一个奇怪的问题;

在我的 WorkerRole 中,我调用 CloudConfigurationManager.GetSetting返回 null(可以是空字符串,很难从日志文件中辨别)。换句话说;我无法从 RoleEnvironment 获取设置。

信息:

  • 模拟器/本地主机工作完美
  • 通过 RDP 验证 dll 版本
  • 尝试获取各种测试设置
  • 相同的代码行现在在生产槽中运行得很好。
  • 我正在使用 nuget 中的 Microsoft.WindowsAzure.ConfigurationManager 1.8.0.0
  • 向 app.config 添加了设置以进行测试,结果相同。

有什么线索吗?

更新:

调用代码(WorkerRole中的方法Run())

public override void Run(){

   // Fetch connectionstring
   var connectionString = CloudConfigurationManager.GetSetting("ConnectionString");

   // connectionString is null here?

  [...]

}

该设置在门户中可见,因此肯定已部署。

最佳答案

我已经修复了它,以下步骤解决了它:

  • 其中一个项目引用了 Microsoft.WindowsAzure.Configuration 版本 1.7.0.0。更改了这一点(如果这是原因,那就奇怪了,因为输出中的 dll 版本正确。也许它是在运行时从 GAC 加载的?)
  • 删除了 Microsoft.WindowsAzure.Configuration 的程序集绑定(bind)重定向
  • osFamily 从 1 升级到 2(Windows 2008 SP2 -> Windows 2008 R2)

有些步骤可能是不必要的,但我不确定其中哪一个:-)

关于c# - CloudConfigurationManager.GetSetting 在生产中返回空字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14917010/

相关文章:

azure - 如何在Azure数据仓库中设计维度和事实表?

c# - 为什么 EnumerateMetafile 只能在启用 Aero 的情况下使用

azure - 未从 Azure IoT MQTT 代理接收订阅主题的消息

c# - HelloWorld 示例,用于在两个不同的应用程序之间通过 EasyNetQ 通过 RabbitMQ 发送对象

c# - 如何将二进制字符串转换为bytes[]数组?

Azure DevOps : how configure my pipeline script to trigger another pipeline with different repo?

node.js - 错误 : Failed to launch the browser process! Whatsapp web js | Azure 门户 Linux puppeteer 师

azure - Kusto 时间范围内重叠间隔的数量

c# - 有什么方法可以检查 oauth token 是否过期?

c# - 具有不同 DTO 的 View 模型之间的 MVVM 通信