我刚刚将我的项目升级到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)
有些步骤可能是不必要的,但我不确定其中哪一个:-)
原文地址:https://codeday.me/bug/20190613/1230117.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。