微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

信息:

>模拟器/ localhost工作完美
>通过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的程序集绑定重定向
>将osFamily从1升级到2(Windows 2008 SP2 – > Windows 2008 R2)

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐