ASP.NET 2.0 - Как использовать app_offline.htm - PullRequest
106 голосов
/ 20 июля 2009

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

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

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

Ответы [ 7 ]

145 голосов
/ 20 июля 2009

Я использовал чрезвычайно удобный трюк 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 Friendly Errors»

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

45 голосов
/ 06 февраля 2011

Убедитесь, что ваш файл 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>
14 голосов
/ 30 апреля 2012

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

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

HTTP/1.1 503 Service Unavailable

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

10 голосов
/ 19 декабря 2011

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

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

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

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

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

2 голосов
/ 20 июля 2009

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

1 голос
/ 05 марта 2017

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

app_offline.htm

не

app_offline.htm.htm

0 голосов
/ 12 февраля 2015

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

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


Настройка IIS 6

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

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

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

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

...