我正在开发一个包含两个单独的工作者角色的Azure云服务。我已经完成了第一个辅助角色(角色#1)的开发,现在我开始开发第二个辅助角色(角色#2)。
在Role#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中定义的配置设置。
对此人的任何建议都表示赞赏,因为它让我感到难过。
答案 0 :(得分:1)
我已经设法在睡觉后解决了这个问题!一双新鲜的眼睛等: - /
事实证明,角色#2引用了早于Role#引用版本的NuGet包 Microsoft.WindowsAzure.ConfigurationManager 和 WindowsAzure.ServiceBus 的版本1。
将角色#2的工作者角色类库项目中的这些包更新到与角色#1匹配的版本现在已解决该问题。具体来说, Microsoft.WindowsAzure.ConfigurationManager 引用版本1.8.0.0并更新到版本2.0.3以解决此问题。角色#1已经引用了2.0.3版。
作为参考,我使用以下Package Manager Console命令更新引用:
Update-Package Microsoft.WindowsAzure.ConfigurationManager -ProjectName [PROJECT-NAME] -Version 2.0.3