2015-02-11 36 views
0

我正在開發一個包含兩個單獨的Worker角色的Azure雲服務。我完成了第一個工作者角色(角色#1)的開發,並且現在開始開發第二個工作者角色(角色#2)。Azure工作者角色忽略ServiceConfiguration.Local配置

在角色#2 I具有在ServiceDefinition.csdef中文件中定義的配置設置,包括標準Microsoft.ServiceBus.ConnectionString設置,與在ServiceConfiguration.Local.cscfg和ServiceConfiguration.Cloud相應設置了一把。 cscfg文件。

我的雲服務項目定義如下:

enter image description here

當我開始角色#2在當地Azure計算仿真器(快遞)的所有配置設置該角色的被忽略。相反,配置設置從本地App.config文件拍攝,如下面的截圖:

enter image description here

我使用CloudConfigurationManager.GetSetting()輔助方法來檢索配置setttings,而不是貶值(對於Azure)ConfigurationManager。*助手。作爲參考,我使用的是Azure SDK的2.5版本。

我不明白爲什麼ServiceDefinition.csdef和ServiceConfiguration.Local.cscfg中定義的配置設置被忽略。

對這一個的任何意見讚賞,因爲它讓我難住。

+0

我相信CloudConfigurationManager.GetSetting()輸出,以探測一個值時跟蹤 - 那裏有什麼? – wgraham 2015-02-11 18:13:37

+0

我已更新問題以顯示跟蹤輸出。 – 2015-02-11 22:14:36

+0

你確定配置設置存在於第二個角色下嗎?您需要在服務中的* both *角色中定義配置屬性。突出顯示的一行('從ServiceRuntime獲取...:FAIL')顯示該屬性不存在於該角色的cscfg中。除此之外,我不確定 - 雙重和三重檢查一切。 – wgraham 2015-02-11 22:17:06

回答

1

睡眠問題後,我設法解決了這個問題!一個新鮮的一雙眼睛等: -/

原來的軟件包的NuGet的那個角色#2參照版本Microsoft.WindowsAzure.ConfigurationManagerWindowsAzure.ServiceBus那是早於角色中引用的版本#1。

將角色#2的工作者角色類庫項目中的這些包更新爲匹配角色#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