Редактирование web.config - причина простоя?

На сайте, с которым я работаю, у нас есть два класса изменений, которые они могут запросить. С одной стороны, у них есть вещи, которые я должен был бы перестроить и развернуть. Они считают эти изменения "простоем", потому что мы показываем хороший маленький экран-заставку и тщательно тестируем сайт, когда возвращаемся.

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

Но один из умных парней со стороны клиента отметил, что редактирование web.config перерабатывает пул приложений, и это просто время. Я никогда не замечал, но я полагаю, что это правильно - пока пул приложений недоступен, приложение "выключено".

Но как долго? Я не прошу вас разбираться с уровнем комфорта клиента по интервалам времени простоя, но это общая точка зрения? Или мы не должны беспокоиться о том, что редактирование web.config сопровождается вторым или вторым временем простоя приложения?

4 ответа

Решение

IIS самостоятельно перерабатывает пул приложений, и если эти перезапуски не вызывают у вас беспокойства, это тоже не должно произойти.

Пользователь не должен получать какие-либо ошибки "недоступен сервис", afaik.

Все сказанное пока верно.

Однако есть способ избежать этого простоя, пока ваши значения не извлекаются из кэша.

Вы можете перенести часть вашего файла.config в другой файл, который не перезапишет пул приложений.

Это будет выглядеть примерно так в файле web.config:

<appSettings file="moresettings.config"></appSettings>

Тогда ваш внешний файл будет выглядеть так:

<?xml version="1.0" encoding="utf-8" ?>
<appSettings>   
<add key="SOMEKEY" value="MYVALUE"/>
</appSettings>

Если вас вообще беспокоит простои, а это часто случается, я бы подумал перенести эти настройки в базу данных.

Тем не менее, время простоя в вашем случае будет минимальным. Пул приложений перерабатывается, когда вы сохраняете файл web.config, и мы говорим о миллисекундах.

Как уже говорилось, IIS действительно перерабатывает пул приложений. Это не так плохо, как выполнение полного iisreset - пользователи не должны получать "Служба недоступна". ошибка, поскольку веб-сервер все еще подключен к сети и обслуживает запросы - ему просто нужно дождаться перезапуска AppPool, что означает, что время отклика для пользователей, получающих доступ в данный момент, очень велико. Конечно, это может быть проблемой, если у вас есть общедоступный веб-сайт и вы отвлекаете посетителей.

Другие побочные эффекты перезапуска AppPool такие же, как у iisreset: он сбрасывает кэш сеанса InProc, если я не ошибаюсь, и выполняет событие Application_Start.

Так что, хотя это относительно безвредно, я бы все равно относился к нему как к простоям.

Другие вопросы по тегам