Каковы возможные причины, по которым App_Offline.htm не может остановить работу сайта?
Обычно я использую App_Offline.htm
за перевод сайта в автономный режим. Но иногда, когда я это делаю, сайт просто зависает (как в: браузеры ждут вечно, сервер вообще не дает ответа). Похоже, это происходит на обновляемом сайте, когда я что-то изменяю, например, элемент управления, а потом, когда это происходит недостаточно быстро (сайт зависает), я помещаю App_Offline.htm в корень сайта.
В большинстве случаев это сразу сносит мой сайт. Но иногда это не так. В этих случаях я не могу просто остановить сайт (при перезапуске поведение продолжается). Остановка пула приложений не позволяет мне перезапустить тот же пул приложений. Пока единственное решение - перезапуск всей веб-службы IIS.
Я хотел бы предотвратить это. Это ошибка в IIS, которая не "нарушает все действия", когда App_Offline.htm
найден? Я использую IIS 7 с Windows 2008 SP2 64 бит.
6 ответов
IIS не должен останавливать существующие действия, а только предотвращать прохождение новых запросов: остановит ли app_offline.htm текущие запросы или только новые запросы?
Похоже, вы описываете сценарий, в котором вы обновляете элемент управления, пытаетесь загрузить страницу, а IE застревает при загрузке. В этот момент вы бросаете app_offline.htm
и ожидайте увидеть эту страницу немедленно.
Если вы делаете совершенно отдельный / новый запрос после размещения app_offline.htm
на месте, то вы должны увидеть, как страница подходит. Однако существующий запрос не будет затронут, как указано выше.
Если возможно, попробуйте развернуть app_offline.htm
файл до внесения контрольного изменения.
Я обнаружил, что мой файл web.config либо содержит ошибку, либо отсутствует. В этом случае app_offline.htm не обрабатывается.
Вот вещь Каждый раз, когда вы открываете.sln на сервере или обновляете код, он создает билет app_offline в корне. Это функция самого asp.net, которая предотвращает любой доступ, мешающий вашей разработке.
Удалите app_offline вручную каждый раз после открытия.sln.
надеюсь, это поможет. Благодарю.
Я не уверен, что вы имеете в виду, что "остановка пула приложений не позволяет мне перезапустить тот же пул приложений"... если вы имели в виду, что вы не можете перезапустить пул сразу после его остановки, то это потому, что он не остановлен еще. В зависимости от количества рабочих процессов в этом пуле может потребоваться минута, чтобы он полностью развернулся, чтобы он мог принять команду запуска.
Кроме того, я думаю, что вам придется перезапустить пул, чтобы app_offline.htm все равно работал эффективно.
Другая возможность - отсутствующий обработчик. Требуется следующий обработчик:
ExtensionlessUrlHandler-Integrated-4.0
Для устранения проблемы необходимо как минимум:
- Подождите время ожидания вашего веб-сайта, чтобы убедиться, что все запросы завершены.
- Фоновые процессы, запущенные из веб-запроса, будут означать дальнейшее увеличение времени ожидания после истечения времени ожидания веб-сайта.
- Выгрузите любой неуправляемый код, подключившись к событиям DomainUnload или Application_End.
Я жду 3 минуты, пока App_Offline.htm вступит в силу, и это, похоже, позволило App_Offline.htm работать должным образом.