2015-02-11 3 views
0

Я разрабатываю Azure Cloud Service, который содержит две отдельные роли рабочего. Я завершил разработку первой роли рабочего (роль № 1) и теперь начинаю разработку второй роли рабочего (роль № 2).Azure Worker Role Ignoring ServiceConfiguration.Local Configuration

В Role # 2 У меня есть несколько конфигурационных настроек, заданных в файле ServiceDefinition.csdef, в том числе стандартный Microsoft.ServiceBus.ConnectionString установки, с соответствующими параметрами в ServiceConfiguration.Local.cscfg и ServiceConfiguration.Cloud. cscfg-файлы.

My Cloud Services Project определяется следующим образом:

enter image description here

Когда я начинаю Role # 2 в местном Azure Compute Emulator (Express) все настройки конфигурации для этой роли игнорируются. Вместо этого, параметры конфигурации взяты из локального файла App.config, как показано на скриншоте ниже:

enter image description here

Я использую CloudConfigurationManager.GetSetting() вспомогательный метод для получения конфигурации setttings, а не амортизируется (для Azure) ConfigurationManager. * помощники. Для справки, я использую версию 2.5 Azure SDK.

Я не понимаю, почему параметры конфигурации, определенные в ServiceDefinition.csdef и ServiceConfiguration.Local.cscfg, игнорируются.

Любые советы по этому поводу оцениваются по мере того, как он меня пугал.

+0

Я считаю CloudConfigurationManager.GetSetting() выводит Трейс при зондировании для значения - что там? – wgraham

+0

Я обновил вопрос, чтобы показать выходы Trace. –

+0

Вы уверены, что настройки конфигурации существуют под второй ролью? Вам нужно будет определить свойства конфигурации в * обеих * ролях в сервисе. Строка над выделенным («Получение ... из ServiceRuntime: FAIL») показывает вам, что свойство не существует в cscfg для роли. Исключая это, я не уверен - двойная и тройная проверка всего. – wgraham

ответ

1

Мне удалось решить эту проблему после спящего режима! Свежий пар глаз и т.д.: -/

Оказывается, что роль # 2 был ссылающейся версия пакетов 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 
Смежные вопросы