Насколько я понимаю, IIS должен иметь возможность обрабатывать сценарий, в котором я могу копировать обновленные файлы веб-приложений (.dll, .aspx и т. Д.) На работающий веб-сервер. IIS обнаружит, что файлы были обновлены, и выполнит перезапись пула приложений. Это, в свою очередь, запустит новый рабочий процесс, который использует этот обновленный набор файлов, и будет обрабатывать новые входящие запросы. Старый рабочий процесс продолжит обработку запросов до их завершения, а затем этот процесс завершится. Если все это работает правильно, то вы сможете развернуть свое веб-приложение на работающем веб-сервере, не затрагивая пользователей.
При тестировании этого сценария я обнаружил, что это имеет место примерно для 25 пользователей в трехуровневой среде с умеренной балансировкой нагрузки. Если я попробую это с примерно 50 пользователями, я получу 500 ошибок сервера с FileNotFoundExceptions для «временных файлов», подобным этому:
Тип исключения: FileNotFoundException Сообщение об исключении: не удалось найти файл «C: \ PanAP.App \ Pan.AP.Delivery \ bin \ System.Web.WebPages.dll.tmp».
Я не могу найти никакой документации от Microsoft, указывающей, какое количество пользователей IIS может обрабатывать для этого сценария, но я найду документацию, в которой говорится, что «для крупномасштабных развертываний рекомендуется отключить сервер».
Итак, мой вопрос: разворачивается ли кто-нибудь еще таким образом? Если да, то сколько пользователей может поддерживать ваша установка? Если оно намного выше 25, нужно ли что-то конкретное сделать / настроить, чтобы разрешить горячее развертывание для большего числа пользователей?