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