Click here to Skip to main content
Click here to Skip to main content

How to redirect the user to a "Down for Maintenance" page in ASP.NET

By , 16 Aug 2008
 

Introduction

Usually, there arises a scenario when we upgrade our production site to a new release, we want the users to be redirected to the “Down for Maintenance” page. This article will help you understand the easiest technique to redirect all your website traffic to a standard "Down for Maintenance" HTML page.

How to redirect a user to a "Down for Maintenance" page?

The best way to implement this is using the app_offline.htm file. ASP.NET 2.0 has provided a fantastic functionality using which the users will automatically be redirected to the “Down for Maintenance” page. Just add an HTML file named “app_offline.htm” to the root directory of your website. Adding this file will clear the server cache. When ASP.NET sees the app_offline.htm file, it will shut-down the app-domain for the application (and not restart it for requests), and instead send back the contents of the app_offline.htm file in response to all new dynamic requests for the application.

Please take a note that the size of the file should be more that 512 bytes to be displayed. If the size of the file is less that 512 bytes, then IE browser settings need to be changed manually. The "Show Friendly HTTP Errors" check box from the Tools->Internet Options->Advanced tab within IE settings need to be unchecked. If this check-box is not unchecked and the app_offline.htm file size is less that 512 bytes, then the standard IE “Page cannot be displayed” message will be shown.

To start the website again, just remove this file from the root folder of your website. This will trigger the ASP.NET engine to cache all the page contents and display the pages. This has really made life simple :)

Points of interest

Sharing my experience: I have faced a similar situation in one of my projects, where we actually wrote an event handler in the Global.asax page to redirect the user to a standard HTML page, or used the redirect settings of IIS. But then, I came accros this awesome functionality provided by ASP.NET 2.0, and thought of sharing this golden concept with you all :)

Hope this helps! Your comments are always welcome!

History

  • Version 1.0 of article released on 16 August 08.
  • Version 1.1 of article released on 19 August 08. In this version, I modified the "512 KB" value to "512 bytes". This was a superb comment from one of the readers. Thanks to all readers!

License

This article, along with any associated source code and files, is licensed under The Common Development and Distribution License (CDDL)

About the Author

Sandeep Aparajit
Software Developer
United States United States
Member
Sandeep has 7+ yrs of IT experience. He is Microsoft Certified Technology Specialist and has been certified for Analyzing Requirements and Defining Microsoft .NET Solution Architectures.
He is an active member of:
1. MSDN Forums
2. CodeProject.com
3. Community-Credit.com
4. Blogspot.com
 
You can find his contributions at:
My Blog
Photography

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board.
Search this forum  
    Spacing  Noise  Layout  Per page   
QuestionImages in app_offline.htmmemberBretKnoll25 Jul '12 - 11:38 
Any thoughts? I have a request to add an offline page with images. When I change the name of the file to the app_offline.htm it does not displays images.
AnswerRe: Images in app_offline.htmmemberBretKnoll26 Jul '12 - 4:10 
I figured this out. My initial plan was to use an Error Website to display the maintenance window and redirecting the traffic if the site was down. I was struggling with how to determine if the site was down when I came across the awesome post.
 
To resolve my issue I modified app_offline.htm to use an Iframe, pointing to my Error WebSite. Now during our database updates we can rename this file app_offline.htm and when complete we will rename it to a disabled name.
GeneralMy vote of 5memberMember 46022478 Oct '11 - 18:54 
fantastic solution
GeneralEasy to use but has some flawsmemberaphazel16 Nov '09 - 1:22 
This method was created for Microsoft's internal use. Looks pretty kool but it has some flaws like 404 response instead of 503 and MS is not going to change it[^].
GeneralNice TipsmemberAbhijit Jana20 Aug '08 - 4:11 
Full Credit from me
 
cheers,
Abhijit
Check My Latest Article

GeneralRe: Nice TipsmemberSandeep Aparajit20 Aug '08 - 12:22 
Thanks!
 
------------------------------
Sandeep Aparajit
Mark usefull posts as Helpful/Answers.
http://sandeep-aparajit.blogspot.com

GeneralAwesomemembermerlin98119 Aug '08 - 4:09 
I love these little undocumented tips! Thank you. 5 from me
 


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LINQ Exchange - Learn about LINQ and Lambda Expressions
Joke of the Day and Random Jokes - ReallyFunnyQuickJokes.com
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

GeneralRe: AwesomememberSandeep Aparajit19 Aug '08 - 6:41 
Thanks merlin981!
 
------------------------------
Sandeep Aparajit
Mark usefull posts as Helpful/Answers.
http://sandeep-aparajit.blogspot.com

GeneralNot 512KB, File size is only 512 bytesmemberGazi Md. Saiful Islam18 Aug '08 - 18:34 
As per I know "app_offline.htm" file size should be more than only 512 bytes Not 512 KB as you mentioned in this article.
 
Thanks for your nice article.
 
--
Gazi Md. Saiful Islam

GeneralRe: Not 512KB, File size is only 512 bytesmemberRuchit Surati18 Aug '08 - 21:05 
Yes,
 
Its absolutely true. The File Size MUST be atleast 512 BYTES.
 

Thanks.
 
Ruchit S.
http://ruchitsurati.net
 
******************************************

GeneralRe: Not 512KB, File size is only 512 bytesmemberSandeep Aparajit19 Aug '08 - 4:42 
Agreed !!!
I have modified the article to have the value of file size as "512 bytes" instead of "512 KB". Thanks for your comments!
 
------------------------------
Sandeep Aparajit
Mark usefull posts as Helpful/Answers.
http://sandeep-aparajit.blogspot.com

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Permalink | Advertise | Privacy | Mobile
Web03 | 2.6.130523.1 | Last Updated 17 Aug 2008
Article Copyright 2008 by Sandeep Aparajit
Everything else Copyright © CodeProject, 1999-2013
Terms of Use
Layout: fixed | fluid