ASP.NET 2.0 - Как использовать app_offline.htm

Я читал о файле app_offline.htm, который может быть помещен в корень приложения .NET 2.0, который по сути закрывает приложение и отключает любые другие страницы от запроса.

Я разместил файл в корне, и мой сайт все еще загружается. Я пошел в документы по умолчанию в IIS и установил его в app_offline.htm, и сайт все еще загружается (это может быть проблема с кэшированием)

В любом случае, кто-нибудь сталкивался с проблемами, используя это? Я что-то делаю неправильно?

Ответ 1

Я использовал чрезвычайно удобный app_offline.htm трюк для закрытия/обновления сайтов в прошлом без каких-либо проблем.

Убедитесь, что вы фактически разместили файл app_offline.htm в "корне" сайта, который вы настроили в IIS.

Также убедитесь, что файл назван так, как он должен быть: app_offline.htm

Кроме этого, не должно быть никаких других изменений в IIS, которые вам нужно будет сделать, поскольку обработка этого файла (с этим конкретным именем) обрабатывается средой выполнения ASP.NET, а не самой IIS (для IIS v6).

Помните, однако, что, хотя размещение этого файла в корне вашего сайта приведет к тому, что приложение "выключится" и отобразит содержимое самого файла "app_offline.htm", любые существующие запросы все равно получат реальную веб-сайт служил им. Только новые запросы получат контент app_offline.htm.

Если у вас все еще есть проблемы, попробуйте следующие ссылки для получения дополнительной информации:

Scott Gu App_Offline.htm

App_Offline.htm и работая над функцией "Ижевские ошибки"

Будет ли app_offline.htm останавливать текущие запросы или только новые запросы?

Ответ 2

Убедитесь, что файл app_offline.htm имеет длину не менее 512 байтов. Нулевой байтовый app_offline.htm не будет иметь эффекта.

UPDATE: Более новые версии ASP.NET/IIS могут вести себя лучше, чем когда я впервые написал это.

ОБНОВЛЕНИЕ 2: Если вы используете ASP.NET MVC, добавьте следующее в web.config:

<?xml version="1.0"?>
<configuration>
    <system.webServer>
        <modules runAllManagedModulesForAllRequests="true" />
    </system.webServer>
</configuration>

Ответ 3

Обратите внимание, что это ведет себя одинаково в IIS 6 и 7.x и .NET 2, 3 и 4.x.

Также обратите внимание, что когда app_offline.htm присутствует, IIS вернет этот код состояния http:

HTTP/1.1 503 Service Unavailable

Это все по дизайну. Это позволяет вашему балансировщику нагрузки (или что-то еще) видеть, что сервер отключен.

Ответ 4

Возможная проблема с разрешением

Я знаю, что это сообщение довольно старое, но я столкнулся с аналогичной проблемой, и мой файл был правильно написан.

Я изначально создал файл app_offline.htm в другом месте, а затем переместил его в корень моего приложения. Из-за моей настройки у меня возникла проблема с правами доступа.

Веб-сайт действовал так, как будто его там не было. Создав файл в корневом каталоге вместо его перемещения, я исправил свою проблему. (Или вы можете просто исправить разрешение в свойствах → безопасность)

Надеюсь, что это поможет кому-то.

Ответ 5

Убедитесь, что app_offline.htm находится в корне виртуального каталога или веб-сайта в IIS.

Ответ 6

Я столкнулся с проблемой, очень похожей на исходный вопрос, который потребовал немного времени для решения.

Просто запустите кого-нибудь, кто работает над приложением MVC и найдет свой путь в этом потоке, убедитесь, что у вас есть подстановочное сопоставление с соответствующим .Net aspnet_isapi.dll. Как только я это сделал, мой app_offline.htm начал вести себя как ожидалось.


Шаги по настройке IIS 6

В свойствах приложения IIS выберите вкладку виртуального каталога.

В разделе "Параметры приложения" нажмите кнопку "Конфигурация".

В списке подстановочных карт нажмите кнопку "Вставить".

Введите C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll, нажмите OK.

Ответ 7

Убедитесь, что расширения файлов видны в проводнике, а имя файла фактически

app_offline.htm

not

app_offline.htm.htm