Есть ли способ использовать медленного гепарда для преобразования app.config в рабочую роль Azure? - PullRequest
5 голосов
/ 18 марта 2012

Я пытаюсь использовать Slow Cheetah для переключения между локальной строкой соединения БД и строкой соединения SQL Azure.Это рабочая роль Azure, которую я отправляю в Azure с TeamCity.Когда я просматриваю файл журнала, процесс Slow Cheetah работает правильно и создает преобразованный app.config, но следующий шаг сборки (которым я не могу управлять) заключается в записи преобразованного файла с исходным app.config.

Кто-нибудь еще имел успех с этим методом, или вы можете указать мне другой метод для переключения строк подключения.Мне указали только на то, что я использовал одну строку подключения и отредактировал файл hosts так, чтобы он указывал на нужную мне базу данных, но это выглядит грязно.

Ответы [ 2 ]

5 голосов
/ 18 марта 2012

При работе с производственными и тестовыми / локальными средами для Azure рекомендуется хранить такую ​​информацию о конфигурации в файлах конфигурации службы вместо web.config.Вы можете создать столько файлов конфигурации службы, сколько захотите, а затем выбрать желаемый файл .cscfg с помощью графического интерфейса или cspack при публикации своего решения.По умолчанию шаблоны Azure в Visual Studio предоставляют два файла .cscfg:

  • ServiceConfiguration.Cloud.cscfg
  • ServiceConfiguration.Local.cscfg

YouМожно использовать эти существующие файлы, чтобы добавить две разные записи строки подключения, или создать свои собственные.Вы можете сохранить значение строки подключения в файле .cscfg, как показано ниже:

<ConfigurationSettings>
  <Setting name="DbConnectionString" value="blah" />
</ConfigurationSettings>

Затем вы можете получить значение записи настройки конфигурации в своем коде, как показано ниже:

RoleEnvironment.GetConfigurationSettingValue("DbConnectionString")

Ниже приведены соответствующие темы MSDN для этого сценария:

4 голосов
/ 12 октября 2012

Я согласен с Monochrome в том, что строки конфигурации должны быть включены в конфигурацию службы, однако существуют ситуации, когда вам необходимо внести некоторые изменения в конфигурацию, не относящиеся к строкам подключения, которые следует применять только при развертывании в Azure.Например, в моем собственном проекте мне нужно было изменить конфигурацию log4net при развертывании в Azure.

Я нашел эту статью , в которой объясняется, как сделать SlowCheetah работать с проектом Worker Role и Windows Azure.Вам нужно внести небольшое изменение в файл проекта Azure, чтобы скопировать преобразованный файл конфигурации.

<Target Name="CopyWorkerRoleConfigurations" BeforeTargets="AfterPackageComputeService">
    <Copy SourceFiles="..\WorkerRoleName\bin\$(Configuration)\WorkerRoleName.dll.config" DestinationFolder="$(IntermediateOutputPath)WorkerRoleName" OverwriteReadOnlyFiles="true" />
    </Target>
</Project>

Возможно, вам придется настроить атрибут SourceFiles, чтобы он соответствовал вашей структуре каталогов.Но это все, что нужно сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...