Пользовательская страница ошибки для Http Error 503 - PullRequest
14 голосов
/ 16 февраля 2010

Мне нужно отправить страницу с настроенными ошибками для 503 ошибок, созданных моим сайтом asp.net. Я попытался смоделировать условие, отключив пул приложений (не работает) и заполнив мое приложение запросами. Несмотря на то, что IIS отправляет мне страницу ошибки 503 по умолчанию, и хотя я попытался установить пользовательский URL в IIS и ASP.NET для этого кода ошибки, он все равно возвращает мне страницу ошибки 503 по умолчанию!

Буду признателен, если кто-нибудь скажет мне, где хранится страница ошибки 503 по умолчанию, отправляемая IIS.

Ответы [ 4 ]

12 голосов
/ 10 февраля 2011

Столкнулся с теми же проблемами, но мне только удалось заставить это работать для нас, используя классическую страницу ASP в приложении .NET (я не уверен, будет ли она работать так же для apsx):

  1. Убедитесь, что классический ASP включен в IIS. Стоит прочитать: http://blogs.iis.net/bills/archive/2007/05/21/tips-for-classic-asp-developers-on-iis7.aspx

  2. Создайте классический ASP-файл с именем Offline.asp и поместите его в корень вашего сайта со следующим содержимым:

    <%
    
    Response.Status = "503 Service Unavailable"
    Response.CacheControl = "no-cache"
    Response.AddHeader "Pragma", "no-cache"
    Response.Expires = -1
    
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
            <meta name="robots" content="noindex,nofollow" />
            <title>Sorry, we're down for essential maintenance</title>
        </head>
        <body><h1>Sorry, we're down for essential maintenance</h1></body>
    </html>
    
  3. Теперь в IIS7 Manager перейдите в раздел администрирования страниц ошибок, добавьте страницу пользовательских ошибок, например:

    Error Pages

    Add Custom Error Page

    Error Pages

Теперь, когда IIS получает 503, он отправляет в браузер содержимое Offline.asp, а также код 503 (который важен , чтобы поисковые системы не отображали вашу ошибку страница!)

Теперь, если вы хотите перевести ваше приложение в автономный режим, вы можете просто установить простое правило перенаправления, чтобы перенаправить все в Offline.asp.

9 голосов
/ 27 июля 2011

Нельзя настроить сообщение об ошибке 503 Service Unavailable по умолчанию. Обычно возвращается, когда пул приложений по какой-то причине недоступен.

Это описание того, когда это происходит, гласит, что оно происходит непосредственно из http.sys, и все в Интернете, похоже, совпадает с тем, что его нельзя изменить. Я посмотрел на настройки реестра http.sys и там ничего полезного нет.

http://technet.microsoft.com/en-us/library/cc781893(WS.10).aspx

3 голосов
/ 16 февраля 2010

Взгляните на HttpContext.Current.Response.TrySkipIisCustomErrors. просто предложение.

0 голосов
/ 16 февраля 2010

Насколько я вижу, страницы ошибок хранятся в папке% SystemDrive% \ inetpub \ custerr \ \ .htm

Вы можете настроить пользовательские страницы ошибок для каждого веб-сайта в iis7 mmc.


редактировать

Очевидно, что нет пути http.sys в случае 503 - единственный выбор, который вы получаете, это отправить сообщение об ошибке http 503 по умолчанию или разорвать соединение на уровне tcp.

...