我刚刚将我的项目升级到Azure Tools 1.8(2012年10月SDK),我遇到了一个奇怪的问题;
在我的WorkerRole中,我对CloudConfigurationManager.GetSetting
的调用返回null(可以是空字符串,很难从日志文件中判断)。换一种说法;我无法从RoleEnvironment获取设置。
的信息:
任何线索?
更新:
调用代码(在WorkerRole中使用方法Run())
public override void Run(){
// Fetch connectionstring
var connectionString = CloudConfigurationManager.GetSetting("ConnectionString");
// connectionString is null here?
[...]
}
该设置在门户网站中可见,因此无需部署。
答案 0 :(得分:4)
我已修好它,以下步骤解决了它:
Microsoft.WindowsAzure.Configuration
版本1.7.0.0。改变了这个(奇怪的是,如果这是原因,因为输出中的dll是正确的版本。也许它是在运行时从GAC加载的?)Microsoft.WindowsAzure.Configuration
osFamily
从1升级到2(Windows 2008 SP2 - > Windows 2008 R2)有些步骤可能是不必要的,但我不确定它们中的哪一个: - )
答案 1 :(得分:1)
如何使用RoleEnvironment.GetConfigurationSettingValue(“ConnectionString”)代替;假设您正在尝试从服务配置文件(cscfg)获取值?
答案 2 :(得分:1)
我遇到了同样的问题。我已将项目更新为使用Azure SDK 2.0。我为我的Web和辅助角色更新了NuGet包,但Visual Studio中的Azure项目仍然是旧版本。
要解决此问题,请右键单击Azure项目,然后选择“属性”。在“应用程序”选项卡下,您将看到一个用于更新Azure SDK的按钮。
答案 3 :(得分:1)
我将Azure SDK从2.0升级到2.2后得到了这个。我能够解决: