2009-11-22 3 views
3

ситуацияКак перенести web.config?

Мы используем миграции для обновления схемы базы данных и файлы конфигурации для всех внедрений нашего веб-приложения. Теперь у нас возникла проблема с переносом web.config.

текущая реализация

Процесс миграции выполняет следующие действия:

  1. Открыть соединение с базой данных
  2. чтения конфигурации из web.config в объект конфигурации
  3. Получить все миграции
  4. Переходы итерации
    1. Обновление схемы базы данных (подключение базы данных передается в качестве параметра)
    2. объекта конфигурации Update (объект конфигурации передается в качестве параметра)
  5. Сохранить объект конфигурации
  6. Закрыть соединение с базой данных

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

проблема

Проблема заключается в том, что это не представляется возможным сделать определенные изменения в web.config с помощью объекта конфигурации. Как добавление местоположения.

Возможное решение

Мои мысли сейчас не передать объект конфигурации, но * .config файлы в качестве словаря XML-документов. Затем миграция может внести изменения в необработанный xml.

волнуется

Я не слишком возбужденным по поводу такого подхода, так как объект конфигурации делает некоторые проверки целостности данных конфигурации. Эта возможность теряется при работе с raw xml.

вопрос

Является ли это лучший подход?

+1

+1 для чистого и ясного вопроса. –

ответ

2

Я бы не подумал о «Лучшем согласии». Это постоянное улучшение.

Я хотел бы проверить словарь XML-документов для целостности.

+0

любая причина для голосования? – Saar

+0

Проверка документа xml действительно хорошая идея! Спасибо. Что вы подразумеваете при непрерывной интеграции? Btw: не знаю, о чем идет речь. – Florian

+0

извините. исправленный. Я хочу сказать непрерывное улучшение. – Saar

0

Есть несколько вариантов:

  1. Используйте программу Windows Forms для изменения веб-страниц.конфигурации (это подход, который мы приняли)

  2. Обратитесь к следующей статье: How do you modify the web.config appSettings at runtime?

Теперь изменение web.config может перезапустить домен приложения. Однако вы можете остановить это, отключив сканирование во время выполнения.

+0

Благодарим вас за быстрый ответ. Однако не могли бы вы рассказать о том, как ваш ответ связан с моей проблемой. – Florian

+0

Я думал, что вы хотите изменить web.config во время выполнения. – Samuel

+0

Это правда, и это не проблема. Проблема в том, что класс конфигурации частично «только для чтения». Кажется, что невозможно сделать все необходимые изменения. Как добавление местоположения. – Florian

1

Да, один ответ заключается в использовании XML непосредственно или отражении, как обсуждалось here. В конце концов, «сделайте простейшую вещь, которая могла бы работать» ...

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