суббота, 20 сентября 2008 г.

app_offline.htm и статический контент

В ASP.NET 2.0 есть удобная фича, когда надо провести над сайтом массовые обновления. Чтобы пользователи не получали случайные ошибки, работу сайта можно временно приостановить, положив в корень приложения файл app_offline.htm. При этом пул приложения выключается (это фича также полезна если нам надо просто перегрузить сайт).

При наличии этого файла все запросы к сайту возвращают его содержимое с кодом 404 (чтобы поисковики не проиндексировали). Но вот засада – при обращение к статическим файлам – тоже возращается его содержимое! Т.е. не css внешний, ни картинки вставить в этот файл не получится.

Скорей всего, это происходит только с файлами ассоциированными для обработки ASP.NET. Но в встроенном веб-сервере Visual Studio Cassini и IIS 7.0 все файлы им обрабатываются! И выключить на уровне только папки со статическим содержимым модуль ASP.NET невозможно, только на уровне всего приложения. :(

UPDATE: Решил проблему несколько подругому :).

Так как с ASP.NET мы ничего сделать не можем, оффлайновый файл всегда на него влияет, нам нужен второй сайт, где ASP.NET нет. Но для этого не обязательно держать второй сервер с копией статических ресурсов. Можно завести второй сайт указывающий на ту же физическую директорию, где и основное приложение, и выключить для него ASP.NET.

Или же, что более элегантно, если все ресурсы хрянться в одной папке – создать второй сайт с корневой директорией именно в ней. Там не будет никакого asp_offline.htm файла – так что ASP.NET отключать не надо.

Конечно, чтобы обращаться к этому второму сайту – ему надо будет завести dns имя, что-нибудь типа static.example.com. И соответсвенно, прописать ссылки на необходимые статические ресурсы в файле app_offline.htm на этот домен.

Вот такое решение на практике. :)

8 комментариев:

Дмитрий Андриянов комментирует...

можно разместить весь CSS внутри файла, а картинки вставить через DataUrl

derigel комментирует...

Тоже вариант. Но когда я писал эту заметку 3 года назад кроссбраузерность такого решения была плоха. Не знаю как еа сегодняшний момент.

Анонимный комментирует...

Специально для Вас друзья мы возвращаем наш отличный проект на котором можно скачать все с файлобменников бесплатно [url=http://kachaitut.ru/]Игры[/url] . Все для Вас друзья.
Уважаемые Админы приглашаем Вас обменяться ссылками.

С Уважением, Администрация КачайТУТ.

Анонимный комментирует...

Друзья заходите к нам на сайт, здесь есть все новые шаблоны для dle, модули платные и бесплатные, хаки, новейшие релизы для datalife engine мы собираем все для вас со всего интерната [url=http://dlemodern.ru/]модули для dle[/url]

Анонимный комментирует...

Салон Секреты Красоты предлагает большой выбор классических салонных услуг: парикмахерские услуги, маникюр, педикюр, косметология, перманентный макияж. Мы работаем более 10 лет и придерживаемся принципа соотношения цены и качества обслуживания. Для постоянных клиентов действуют акции и бонусная система. Заходите на наш сайт [url=http://s-krasoti.ru/] эпиляция бикини-дизайн фото
[/url]

Анонимный комментирует...

Хотите Скачать филмы быстро и бесплатно, Вам сюда [url=http://expresskino.ru/]Хоббит: Нежданное путешествие[/url]

Анонимный комментирует...

Хотите Скачать филмы быстро и бесплатно, Вам сюда [url=http://expresskino.ru/]Скачать телесериалы[/url]

Анонимный комментирует...

Производственная компания «М-СЕТ» специализируется на производстве сварных сеток в рулонах, имеющих широкое применение в различных строительных работах.
Производство сварной сетки выполняется на многоточечных сварных машинах, методом контактно-точечной сварки крестообразных соединений. Все пересечения и стыки прутьев тщательно сварены, благодаря чему конструкция отличается превосходным качеством и является одной из самых прочных.
На нашем сайте Вы можете посмотреть образцы нашей продукции и связаться с нами
[url=http://setka-vlg.ru/]производство сварной сетки в рулонах купить
[/url]