(1) у нас есть веб-приложение, работающее на веб-сайте Azure с использованием Sql Server (Web Edition). Приложение включает две строки подключения:
DefaultConnection - обычная строка подключения в виде
Server=tcp:{my-sql-server}.database.windows.net,1433;Database=...
).EFConnection - строка подключения Entity framework. Поскольку я использую конструктор EF (и мне это нравится), мне нужно использовать строку подключения в виде
metadata=res://*/Models.EDM...
(2) Я поместил строки подключения в web.config
; это единственный способ, которым строка подключения «метаданные ...» (EF) была принята (при попытке ввести эти строки подключения в панели управления веб-сайта Azure я получил всевозможные странные ошибки).
Все отлично работает.
(3) Затем я добавил на наш веб-сайт промежуточный слот для поэтапной разработки, как описано в Поэтапное развертывание на веб-сайтах Microsoft Azure
Постановочный сайт работает нормально. Я создал для него другой сервер Sql и установил для него строку подключения так же, как на рабочем сайте (то есть в файле web.config). Я обрабатываю разные web.config
с помощью web.config Transformations
. (у меня есть еще 2 преобразования - для разработки / отладки и для локальных развертываний / выпуска)
Проблема: теперь, когда у меня есть производственный + промежуточный сайт, я пытаюсь сделать свопинг. Своп отлично работает, и любые изменения, внесенные на промежуточный сайт, переносятся на производственную.
Однако своп также берет строки подключения с промежуточного сайта, соединяя производство с промежуточной базой данных.
* Это известная ошибка? есть ли обходной путь? (на данный момент я должен выполнить прямое развертывание на производственном сайте после того, как QA протестировал подготовленный сайт - это означает простои для нашего сайта и тихое поражение цели всего этого упражнение)