Хорошо, ребята,
Просто ищу небольшое представление о методах, используемых другими для следующего сценария ...
У меня есть проект live (.net 3.5), который запускается из папки по умолчанию IIS7 (сопоставленной с «корнем» опубликованной папки wwwroot). Пока мы выполняем обслуживание или обновления (с помощью установщика Windows, встроенного в VS), я обычно заменяю приложение статическими страницами, чтобы объяснить, что система находится на обслуживании.
Мы перемещаем опубликованный сайт в подкаталог (который мы тоже не назвали), удаляем старую версию, устанавливаем новую версию и, когда мы довольны, перемещаем его обратно в корень (заменяя удерживающие страницы).
Там должен быть более простым и менее рискованным способом сделать это.
Как другие подходят к этой (или подобным) ситуациям?
В IIS я использую метод под названием App_Offline. Более подробную информацию можно найти на Скотт Гу блог.
Принцип работы app_offline.htm заключается в том, что вы помещаете этот файл в корень приложения. Когда ASP.NET видит его, он завершает работу домена приложения для приложения (и не перезапускает его для запросов) и вместо этого отправляет обратно содержимое файла app_offline.htm в ответ на все новые динамические запросы для приложения. Когда вы закончите обновление сайта, просто удалите файл, и он снова появится в сети.
Одна вещь, на которую я указал в своем выступлении, - это функция IE6 под названием «Показывать дружественные ошибки HTTP». Это можно настроить на вкладке «Сервис» -> «Свойства обозревателя» -> «Дополнительно» в IE, и в IE6 она включена по умолчанию. Когда он включен, и сервер возвращает код состояния, отличный от HTTP-200, с содержимым менее 512 байт, IE не будет показывать возвращенный HTML, а вместо этого подставляет свое собственное сообщение общего кода состояния (что лично я не считаю супер дружелюбный ).
Поэтому, если вы используете функцию app_offline.htm, вы должны убедиться, что у вас есть как минимум 512 байт содержимого, чтобы ваш HTML (вместо дружественного сообщения о статусе IE) отображался для ваших пользователей. Если вы не хотите, чтобы на странице отображалось много текста, вы можете использовать один трюк - просто добавить клиентский комментарий html с некоторым поддельным содержимым, чтобы увеличить его размер до 512 байт. Например:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Site Under Construction</title>
</head>
<body>
<h1>Under Construction</h1>
<h2>Gone to Florida for the sun...</h2>
<!--
Adding additional hidden content so that IE Friendly Errors don't prevent
this message from displaying (note: it will show a "friendly" 404
error if the content isn't of a certain size).
<h2>Gone to Florida for the sun...</h2>
<h2>Gone to Florida for the sun...</h2>
<h2>Gone to Florida for the sun...</h2>
<h2>Gone to Florida for the sun...</h2>
<h2>Gone to Florida for the sun...</h2>
<h2>Gone to Florida for the sun...</h2>
<h2>Gone to Florida for the sun...</h2>
<h2>Gone to Florida for the sun...</h2>
<h2>Gone to Florida for the sun...</h2>
<h2>Gone to Florida for the sun...</h2>
<h2>Gone to Florida for the sun...</h2>
<h2>Gone to Florida for the sun...</h2>
<h2>Gone to Florida for the sun...</h2>
-->
</body>
</html>
Подробнее об этом на нашем родственном сайте, Переполнение стека.