Как создать страницу хранения сайта на IIS7?

Я хочу создать холдинговую страницу, чтобы во время обслуживания сайта мы могли отображать что-то подходящее.

Список покупок:

  • Легкость включения / выключения
  • Не хочу, чтобы робот Google думал, что все страницы исчезли NOINDEX / NOFOLLOW
  • Не хотите, чтобы пользователи видели сообщение IIS7 «ERROR 500 go away» - вместо этого покажите мою настраиваемую страницу

Раньше у нас была «страница хранения» ASP на сайте, на которую перенаправлялись все URL-адреса. После перехода на IIS7 и SEO Friendly URL Rewriting это стало невозможным.

Поэтому вместо этого мы использовали отдельный сайт IIS, который содержит только страницу удержания DEFAULT.ASP и обработчик 404, так что любой URL-адрес перенаправляется на него. Затем нам нужно переключить IP-адреса или имена доменов заголовка хоста в IIS Config (и у нас есть обход PREVIEW.MyDomain.com, чтобы попасть на сайт Live во время развертывания)

Нам нужно установить код ответа - я думаю, что 503 «Служба недоступна» будет наиболее подходящей? (хотя Пользовательская страница ошибки для Http Error 503, похоже, указывает, что IIS7 не будет отображать настраиваемую страницу с ошибкой 503?)

Чтобы люди не видели сообщение IIS7 «ERROR 500 go away», я думаю, нам нужно настроить этот «сайт ожидания», чтобы разрешить подробные ошибки?

Основным приложением по-прежнему является классический ASP, но для сайта с удерживаемой страницей мы можем реализовать ASP.NET, если это поможет нам преодолеть некоторые препятствия.

Есть ли альтернативный способ, которым мы могли бы справиться с этим на сайте (чтобы все запросы направлялись на страницу блокировки, но есть некоторый черный ход, чтобы мы могли протестировать обновления сайта перед удалением страницы блокировки) [пожалуйста, посмотрите мои мысли ниже]

Переключение IP-адресов (или имен заголовков хостов) между сайтами IIS в настоящее время не является простой операцией - выполнение этого вручную занимает минуту или две для полдюжины задействованных сайтов IIS. Возможно, мы могли бы просто иметь файлы Web.Config, которые мы могли бы переключать - хотя я думаю, что это может означать, что некоторые недавние изменения в настройках будут потеряны при мытье :(

Возможная альтернативная реализация:

Мы думали о том, чтобы иметь DEFAULT.ASP (наш сайт работает через одну страницу ASP для всех запросов), который позволяет устанавливать флаг и показывает страницу блокировки. Тогда у разработчиков будет «черный ход» для установки Cookie (или, возможно, «обходного» списка IP-адресов), чтобы во время развертывания обновления они могли видеть, что с сайтом все в порядке, прежде чем снимать флаг удержания страницы.

Одним из преимуществ текущего отдельного сайта-хранилища является то, что там можно развернуть любой HTML / изображения / CSS, тогда как на действующем сайте страница-хранилище должна предполагать, что что-либо, включая изображения, файлы CSS и т. Д., Может быть изменено как часть Обновите - и тут вам помешает человеческая ошибка!


person Kristen    schedule 22.11.2010    source источник


Ответы (1)


Если у вас несколько серверов, вы можете использовать надстройку Application Request Routing для IIS (бесплатно). Это позволяет легко создавать веб-фермы. Вы можете извлечь сервер из пула, но по-прежнему тестировать через его прямой IP-адрес, и пользователи будут получать доступ к странице обслуживания через сервер ARR.

Кроме того, ARR позволяет отправлять любые коды ответов для любой ситуации.

person Chris Kooken    schedule 22.11.2010
comment
Я часами пытался понять, как действительно переписать код ответа через ARR. Я пробовал использовать исходящее правило, чтобы переписать серверную переменную RESPONSE_STATUS, но, согласно Fiddler, он все еще получает 200 OK, пока я пытаюсь переписать на 503. - person Jeremy H; 07.03.2011