Azure 辅助角色忽略 ServiceConfiguration.Local 配置

Azure Worker Role Ignoring ServiceConfiguration.Local Configuration

我正在开发一个包含两个独立辅助角色的 Azure 云服务。我已经完成了第一个辅助角色(角色#1)的开发,现在开始开发第二个辅助角色(角色#2)。

在角色 #2 中,我在 ServiceDefinition.csdef 文件中定义了一些配置设置,包括标准的 Microsoft.ServiceBus.ConnectionString 设置,相应的设置在ServiceConfiguration.Local.cscfg 和 ServiceConfiguration.Cloud.cscfg 文件。

我的云服务项目定义如下:

当我在本地 Azure Compute Emulator (Express) 中启动角色 #2 时,该角色的所有配置设置都将被忽略。相反,配置设置取自本地 App.config 文件,如下面的屏幕截图所示:

我正在使用 CloudConfigurationManager.GetSetting() 辅助方法来检索配置设置,而不是折旧的(对于 Azure)ConfigurationManager.* 辅助方法。作为参考,我使用的是 Azure SDK 2.5 版。

我不明白为什么 ServiceDefinition.csdef 和 ServiceConfiguration.Local.cscfg 中定义的配置设置被忽略了。

关于这个问题的任何建议都让我感到难过。

我在解决这个问题后设法解决了这个问题!一双新鲜的眼睛等 :-/

事实证明,角色 #2 引用了 NuGet 包的版本 Microsoft.WindowsAzure.ConfigurationManagerWindowsAzure.ServiceBus早于角色 #1 引用的版本。

将角色 #2 的辅助角色 Class 库项目中的这些包更新为与角色 #1 匹配的版本现已解决该问题。具体来说,Microsoft.WindowsAzure.ConfigurationManager 引用了版本 1.8.0.0 并已更新到版本 2.0.3 以解决此问题。角色 #1 已经在引用版本 2.0.3。

作为参考,我使用了以下包管理器控制台命令来更新参考:

Update-Package Microsoft.WindowsAzure.ConfigurationManager -ProjectName [PROJECT-NAME] -Version 2.0.3