Как включить конфигурацию для модулей IIS в web.config, не ломая приложение на сервере, на котором не установлен модуль - PullRequest
2 голосов
/ 10 ноября 2010

Я хочу включить конфигурацию модуля Application Warmup для IIS 7.5 в файл web.config моего приложения (элемент <httpWarmup> внутри <system.webServer>)

Это прекрасно работает, когда модуль установлен, но если я хочу развернуть приложение на сервере без установленного модуля (например, IIS Express), я получаю

Ошибка HTTP 500.19 - внутренний сервер Ошибка
Запрашиваемая страница не может быть доступ, потому что связанный Данные конфигурации для страницы недействительный.

Можно ли это сделать? Есть ли параметр, позволяющий IIS игнорировать дополнительные элементы в <system.webServer>, которые он не распознает?

Спасибо

1 Ответ

2 голосов
/ 11 ноября 2010

Если вы используете Visual Studio 2010, тогда вы можете использовать функцию преобразования web.config.Используя преобразования, вы можете в сочетании с инструментом «Публикация» на веб-сайте преобразовать свои web.config и добавлять / удалять настройки в зависимости от того, выполняете ли вы отладочную или выпускную сборку.

Для получения дополнительной информации см .:

Синтаксис преобразования Web.config для развертывания проекта веб-приложения
Как преобразовать Web.config при развертывании проекта веб-приложения

Скотт Хансельман продемонстрировал замечательную демонстрацию этой функции:

Развертывание веб-страниц стало потрясающим: если вы используете XCopy, вы делаете это неправильно

Это работает с ASP.NET 2.0 и 4.0.

Если вы все еще используете Visual Studio 2008, тогда все еще возможно достичь этого.

Прежде всего, этоиспользовать метод грубой силы и поддерживать несколько файлов web.config.Когда вы строите проект в VS, вы используете предварительно созданный обмен событиями в правильном файле web.config.Я использовал эту технику раньше, но у Скотта Хансельмана (как всегда) есть хороший проработанный пример:

Управление несколькими средами конфигурационных файлов с событиями предварительной сборки

Если вы используете MSBuild напрямую, вы можете использовать задачу сборки для изменения файлов web.config.Библиотека проектов MSBuild предоставляет библиотеку расширений, которая предоставляет дополнительные расширения для MSBuild для облегчения этих задач.Задача XmlMassUpdate - это, вероятно, та задача, которую вы хотите использовать.Я буду честен и признаю, что на данный момент я только царапаю поверхность MSBuild и на самом деле не пробовал это, но (и я не имею в виду это по-LMGTFY) поиск в Google XmlMassUpdate возвращает богатый набор полезныхсмотрю хиты.

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