Можно ли изменить строку подключения во время VIP-свопа Azure - PullRequest
6 голосов
/ 29 сентября 2011

Я пытаюсь настроить среды Staging и Live в Azure (сентябрьский инструментарий), и мне нужна отдельная база данных Staging и Live - с разными строками подключения. Очевидно, что я могу сделать это с преобразованиями web.config обратно в Visual Studio, но есть ли способ, которым я могу автоматизировать изменение строки подключения во время VIP-свопа - так, чтобы промежуточный сайт указывал на промежуточные данные, а живой сайт - на живые данные ? Я бы предпочел не развертывать дважды.

Ответы [ 2 ]

15 голосов
/ 06 октября 2011

С помощью API-интерфейсов управления и командлетов PowerShell вы можете автоматизировать большое количество платформы Azure, что может включать в себя координацию переключения VIP и изменение строки подключения.

Это подход:

  1. Добавьте строку подключения к базе данных в файл ServiceConfiguration.
  2. Измените логику приложения, чтобы читать строку подключения из определенной конфигурации Azure, используя RoleEnvironment.GetConfigurationSettingValue, а не более типичную конфигурацию .NET Configuration ConfigurationManager.API .ConnectionStrings
  3. Реализация RoleEnvironmentChanging, чтобы ваша логика была уведомлена, если конфигурация службы Azure когда-либо изменится.Добавьте сюда код для обновления строки подключения вашего приложения, снова используя RoleEnvironment.GetConfigurationSettingValue.
  4. Развертывание в промежуточное состояние с настройкой ServiceConfiguration для вашей «промежуточной» строки подключения к БД
  5. Напишите сценарий PowerShell, который будетвызовите переключатель VIP (построите на основе командлета Move-Deployment из командлетов PowerShell платформы Windows Azure 2.0 ) и вызовите изменение конфигурации с помощью нового файла ServiceConfiguration, который включает вашу «производственную» базу данныхстрока подключения (см. Set-DeploymentConfiguration )

Взятые вместе, шаг 5 выполнит переключение VIP и выполнит обновление строки подключения в одной автоматической операции.

9 голосов
/ 29 сентября 2011

Я не верю, что что-то меняется в том, что касается роли, когда вы меняете VIP-своп. Скорее, это изменяет конфигурацию балансировщика нагрузки.

Так что в вашем приложении ничего не происходит, чтобы заставить его изменить конфигурацию. Единственное, о чем я могу думать, это то, что URL-адрес меняется между ними. Вы могли бы реализовать код, который выбрал одну из двух строк подключения, основываясь на URL-адресе, с которого он был доступен (при условии, что мы говорим только о веб-роли), но это выглядит грязно.

По сути, я думаю, что проблема в том, что постановка не является отдельной тестовой средой; это ступенька в производство. Таким образом, Microsoft предполагает, что конфигурация не меняется.

...