Я хотел бы знать, как повлияет изменение файла web.config во время работы приложения ASP.NET.
Вот мой точный сценарий. У меня есть два хоста, на которых выполняется одно и то же приложение на IIS6. Оба хоста имеют одинаковые файлы machine.config, что означает, что у них одинаковые машинные ключи.
|
|
[HOST A]----[NLB]---[HOST B]
| |
| |
| |
| |
[SQL server for ASP.NET sessions]
Приложение должно быть доступно пользователям ежедневно с 7:00 до 18:00. В 19:00 хосты A и B перезагружаются, и мы можем сделать некоторые обновления приложения на обоих хостах. Но иногда мы хотели бы иметь возможность делать обновления во время работы приложения. Обновления часто состоят из добавления некоторых значений в web.config, что, насколько мне известно, вызывает перезапуск приложения.
Приложение в значительной степени полагается на сеансы, но они сохраняются на сервере SQL, а в памяти сервера хранятся только данные кеша, и потеря этих данных не критична. Но потеря пользовательских сессий абсолютно недопустима. У меня вопрос: что испытают пользователи, если мы изменим файл web.config на одном из хостов в веб-ферме, если сервер в настоящее время выполняет запрос пользователя? А что будет, если при перезапуске приложения придет новый запрос?





Что ж, вы уже сами ответили. Обычно сеансы прерываются при перезапуске, но вы используете SQL Server для их сохранения, поэтому они не будут потеряны.
Однако новые посетители получат страницу с ошибкой при перезапуске. Но они не инициируют запуск нового сеанса, поэтому посетитель может просто удерживать нажатой клавишу F5, пока приложение не будет запущено.
Таким образом, кажется, что нет способа делать обновления во время работы приложения, не нарушая взаимодействия с пользователем. Спасибо за Ваш ответ.