65.9K
CodeProject is changing. Read more.
Home

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

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.64/5 (14 votes)

Aug 17, 2008

CDDL

2 min read

viewsIcon

65453

This article will help you understand a superb hidden feature of ASP.NET. Using this feature, you could easily redirect all your website traffic to a "Down for Maintenance" page.

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!