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

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

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

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

7 ответов

Решение

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

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

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

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

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

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

Скотт Гу App_Offline.htm

App_Offline.htm и работа с функцией "Ошибки, связанные с IE"

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

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

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

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

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

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

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

HTTP/1.1 503 Service Unavailable

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

Возможный вопрос разрешения

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

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

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

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

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

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

app_offline.htm

не

app_offline.htm.htm

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

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


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

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

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

В разделе "Карты приложений Wildcard" нажмите кнопку "Вставить".

Введите C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll, нажмите кнопку ОК.

Другие вопросы по тегам