2016-09-30 2 views
2

У меня есть веб-приложение, которое размещено на Azure.
В настоящее время существует несколько веб-сайтов, которые используют тот же код, который извлекается из битбакета.
Единственная разница между различными установками заключается в том, что у них есть другая строка соединения в файлах web.config, которая предназначена для разных баз данных.Не перезаписывать конфигурационный файл на Azure с помощью GIT

Когда я исправляю ошибку, я загружаю свой новый код на битбакет, а Azure получает этот код от BitBucket.
В настоящее время существует 5 приложений, которые получают один и тот же код, и каждый раз, когда я загружаю новый код на битбакет, мне нужно вручную отредактировать файл web.config на Azure, чтобы настроить правильную базу данных для каждого приложения.

Есть ли способ проинструктировать Azure не перезаписывать файл web.config, когда он получает новый код от Bitbucket?

ответ

1

О возможности является не версии web.config, но файл шаблона web.config.tpl, и файл значений (со значениями для каждого применения)

Затем вы можете использовать content filter driver, используя .gitattributes declaration.

smudge (изображение из "Customizing Git - Git Attributes", от "Pro Git book")

Сгенерированный фактическое web.config остается игнорируется (по .gitignore).
Это означает, что ваше фактическое рабочее дерево не становится «грязным».

Скрипт смазыванию выбирает правильный файл значение и формирует правильный web.config на основе шаблона сценарий смазыванию применяется на во время git checkout.

1

Ответственность за изменение настроек на основе веб-сайта, который вы развертываете, может быть в выпуске. VSTS поддерживает выпуск программного обеспечения от источника, такого как BitBucket to Azure. Создайте учетную запись VSTS. Создайте проект в учетной записи. Создайте новую сборку и настройте BitBucket как источник. Создайте выпуск для развертывания веб-приложения в каждом из пяти мест. Используйте переменные, чтобы установить другую строку соединения для каждого веб-приложения.

1

Зачем не нужно жестко кодировать строки подключения в web.config. Просто заберите его в своем коде из настроек приложения.

От https://azure.microsoft.com/en-us/documentation/articles/web-sites-configure/:

для .NET приложений, эти строки соединения вводится в настройки ConnectionStrings конфигурации .NET во время выполнения, перекрывая существующие записи, где ключ Равны связанное имя базы данных ..

using System.Configuration; 

// Define AzureSQLConnStr in Portal -> Web App -> Application Settings 
string AzureSQLConnStr = ConfigurationManager.ConnectionStrings["AzureSQLConnStr"]; 

Настройки приложения/Строки соединения, определенные в портале, будут переопределять значения от web.config/app.config во время выполнения.

Смежные вопросы