В довольно определенном сценарии размещение app_offline.htm
в корне в порядке: вы делаете некоторые обновления, появляется сообщение при обновлении, и это. Идея заключается в том, что, как полагает Microsoft, прежде чем что-либо вызывается, IIS сначала проверяет, есть ли app_offline.htm, и если да, то отменяет все и отображает его.
Итак, так хорошо, но во многих ситуациях это не работает:
- Когда у вас есть ошибка компиляции на странице ASPX, и пользователь напрямую связывается с ней.
- Если у вас конфликтующие сборки
- Если у вас есть ошибка синтаксического анализа в файле web.config
- В процессе удаления/загрузки всего сайта.
- Прямая ссылка на статическую HTML-страницу по-прежнему отображается как таковая
- Неверные файлы, отказы доступа выдаются до того, как будет показано сообщение.
Возможно, существует больше сценариев, которые терпят неудачу. Я хочу сказать, что для любой серьезной работы по обновлению app_offline.htm не подходит. Я иногда создаю перенаправление в IIS, на другой сайт, но другой сайт может быть не всегда доступен, и он может запутать пользователей.
В идеале я хотел бы сохранить текущее местоположение в строке местоположения URL-адреса конечного пользователя, показать сообщение и автоматически обновлять страницу каждую минуту, чтобы увидеть, вернулся ли сайт, чтобы пользователь продолжается, когда он уходит, когда сайт возвращается. В то время как технически достаточно легко со статической страницей, она будет терпеть неудачу по вышеупомянутым причинам в минуту, когда будет выброшена ошибка.