Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Custom Error Page for Http Error 503

I need to send a Customized Error page for 503 Errors produced by my asp.net website. I have tried to simulate the condition by switching off the application pool (doesn't work) and by flooding my application with requests. Even though IIS sends me the default 503 error page, and even though I have tried setting a Custom URL in IIS and ASP.NET for this error code, it still returns me the default 503 error page !

I'd appreciate if someone could also tell me where the default 503 error page is kept that IIS sends.

like image 291
Storm Avatar asked Feb 16 '10 09:02

Storm


People also ask

What is a 503 error page?

The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. Common causes are a server that is down for maintenance or that is overloaded.

Can T currently handle this request http error 503?

A 503 Service Unavailable Error is an HTTP response status code indicating that a server is temporarily unable to handle the request. This may be due to an overloaded server or a server that's down for maintenance.


3 Answers

Ran into the same problems, but I've just managed to get this working for us using a Classic ASP holding page in a .NET application (I'm not sure if it'll work the same for an apsx):

  1. Make sure Classic ASP is enabled in IIS. Worth a read: http://blogs.iis.net/bills/archive/2007/05/21/tips-for-classic-asp-developers-on-iis7.aspx

  2. Create a classic ASP file called Offline.asp and place it in the root of your website with the following contents:

    <%
    
    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. Now in IIS7 Manager go the Error Pages administration section, add a Custom Error Page like so:

    Error Pages

    Add Custom Error Page

    Error Pages

Now whenever IIS receives a 503, it will send the contents of the Offline.asp to the browser, as well as the 503 code (which is important so that Search Engines don't list your error page!)

Now if you want to take your application offline you can just set up a simple redirect rule to redirect everything to Offline.asp.

like image 190
Chris Haines Avatar answered Oct 25 '22 14:10

Chris Haines


You cannot customise the default 503 Service Unavailable error message. This is returned typically when the app pool is unavailable for some reason.

This description of when it occurs states that it comes directly from http.sys and everything on the internet seems to concur that it cannot be changed. I've looked at the http.sys registry settings and theres nothing useful there.

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

like image 45
mike nelson Avatar answered Oct 25 '22 13:10

mike nelson


Take a look at HttpContext.Current.Response.TrySkipIisCustomErrors. just a suggestion.

like image 42
Sky Sanders Avatar answered Oct 25 '22 13:10

Sky Sanders