ASP.NET 2.0 - Як користуватися app_offline.htm


120

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

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

У будь-якому випадку, хтось стикався з проблемами, використовуючи це? Чи я щось роблю не так?


Чи є сторінка Microsoft, яка це документує?
Купи


Офіційна документація: msdn.microsoft.com/en-us/library/ff925031.aspx
Брайан

Я успішно використовував app_offline.htm, щоб приховати вміст веб-додатків та відобразити тимчасову сторінку. Однак у мене виникають проблеми з переглядом вихідних даних навіть після видалення файлу app_offline.htm. Її моє запитання: stackoverflow.com/questions/42979042 / ...
naz786

Відповіді:


160

Я використовував надзвичайно зручний фокус 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 поточні запити чи лише нові запити?


6
@JackM - Без проблем! Насправді я часто залишаю файл на своєму веб-сайті і називаю його чимось на зразок "xapp_offline.htm". Тому просто сидить там, нічого не роблячи. Коли я хочу оновити частину або весь сайт, я просто перейменую файл і видаляю префікс "x" (зазвичай це робиться через FTP). Це закриває сайт для мене, я роблю оновлення, потім перейменую файл назад з префіксом "х"!
CraigTP

@JackMarchetti - Чи це також буде працювати на веб-сайтах ASP.NET MVC, які використовують маршрутизацію global.asax? Я перевірив усі пропозиції тут, але все ще не пощастило, щоб це спрацювало :(
Squig

Оновлення до попереднього коментаря: Він працює зараз і, мабуть, була якась проблема кешування. Я використовував <CTRL> + Refresh, але, імовірно, він кешувався десь в іншому місці.
Сквіг

Чи є сторінка Microsoft, яка це документує?
Чашки

1
@CodeBlend Добре, посилання на блог Скоттґу є досить офіційним, але, мабуть, найбільш "офіційною" сторінкою Microsoft була б ця сторінка на MSDN: msdn.microsoft.com/en-us/library/vstudio/…
CraigTP

47

Переконайтесь, що ваш файл 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>

1
У мене було точно ім’я файлу з порожнім файлом, і це спрацювало - пуста сторінка відображається незалежно від URL-адреси, яку я використовував
Coops

Перевірте це посилання на питання щодо обмеження кількості 512 байт: codeproject.com/Articles/21319/…
Massood Khaari

Це стосується особливо старих версій IE, які можуть замінити сторінку власним повідомленням про помилку
ChewToy

Скотт Гу описує це також у своєму блозі.
Мет

2
Я міг лише отримати свій MVC-сайт, щоб перейти в офлайн-режим додатка, повністю замінивши свій web.config вище
Matthew Lock

14

Зауважте, що це поводиться так само в IIS 6 і 7.x, і .NET 2, 3 і 4.x.

Також зауважте, що при наявності app_offline.htm, IIS поверне цей код статусу http:

HTTP/1.1 503 Service Unavailable

Це все задумом. Це дозволяє вашому балансиру навантаження (або будь-якому іншому) бачити, що сервер не працює.


1
Звичайно, ви не хочете, щоб ваш балансир завантаження міркував, що сервер перебуває в автономному режимі, оскільки ви хочете відображати його app_offline.htmкористувачам під час вікна обслуговування
Лука

2
@Luke: Кращий приклад того, чому відповідь 503 є корисною: Краще, щоб веб-сканер Google знав, що ваш веб-сайт зараз знищений, а не вирішив індексувати вміст "веб-сайт вниз" (і позначив ваш сайт як тонна дублікату зміст). Крім того, це може бути корисно, якщо ваш CDN виявить, що ваше походження знижується, і, таким чином, уникнете кешування вашого вмісту.
Брайан

10

Можливий випуск дозволу

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

Я спочатку створив файл app_offline.htm в іншому місці, а потім перемістив його до кореня моєї програми. Через мою налаштування у мене виникла проблема з дозволом.

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

Сподіваюся, це комусь допоможе.


4

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


Це точно в корені. у мене є свій inetput \ wwwroot [WebsiteDirectory] \ app_offline.htm
Jack Marchetti

3

Переконайтеся, що розширення імені файлів відображаються в провіднику, а ім’я файлу - насправді

app_offline.htm

ні

app_offline.htm.htm


0

Я зіткнувся з проблемою, дуже схожою на початкове питання, яке потребувало трохи часу для вирішення.

Просто випадок, коли хтось працює над програмою MVC і знайде шлях до цього потоку, переконайтеся, що у вас є відображення підстановки під відповідний .Net aspnet_isapi.dll визначений. Як тільки я це зробив, мій app_offline.htm почав вести себе так, як очікувалося.


IIS 6 кроків налаштування

На Властивості програми IIS виберіть вкладку віртуального каталогу.

У розділі Налаштування програми натисніть кнопку Конфігурація.

Під картами Wildcard натисніть кнопку Вставити.

Введіть C: \ WINDOWS \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_isapi.dll, натисніть кнопку OK.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.