Как быстро завершить работу приложения ASP.Net для перезапуска / перезагрузки на сайте с высокой посещаемостью?

У меня сайт с очень высоким трафиком, который получает более 300 запросов в секунду (http://cooltext.com) . Перезагрузка занимает как минимум 90 секунд. Так что каждый раз, когда я публикую новую сборку, она отключается на минуту или две. Достаточно долго, чтобы запустить мои службы мониторинга.

Когда я вношу изменение, которое перезапускает сервер, кажется, что перезапуск останавливается, пока не будут выполнены все старые запросы в старом пуле приложений (некоторые из них очень долго выполняются). Я могу сделать перезапуск намного быстрее, убив старый экземпляр w3wp.exe вручную.

Есть ли способ заставить IIS сразу закрыть все соединения и выполнить жесткий перезапуск? Какие-то настройки в IIS или asp.net для управления этим?


person Bryan Legend    schedule 20.01.2015    source источник
comment
Помогает ли это запустить несколько рабочих процессов (он же веб-сад)?   -  person sisve    schedule 20.01.2015


Ответы (1)


Я только что нашел следующее: http://msdn.microsoft.com/en-us/library/aa720127(v=vs.71).aspx

Ограничение времени выключения - это эквивалентный параметр пула приложений для параметра модели процесса shutDownTimeout ASP.NET. Он определяет количество времени, в течение которого рабочий процесс завершается корректно. Если рабочий процесс не завершает работу в указанное время, ASP.NET ISAPI завершит рабочий процесс. Предел времени выключения по умолчанию установлен на 90 секунд. Вы можете указать другое ограничение по времени, изменив значение в счетчике.

введите описание изображения здесь

person Bryan Legend    schedule 20.01.2015
comment
Похоже, это скроет реальную ошибку. Я думал, что IIS создаст новый рабочий процесс, который возьмет на себя до того, как старый процесс будет завершен? - person sisve; 20.01.2015