App_Offline.htm - Way to bring down an ASP.NET application while you make changes to it

2 views
Skip to first unread message

KillerDotNet

unread,
Mar 23, 2008, 3:08:55 AM3/23/08
to DotNetStarters
http://weblogs.asp.net/scottgu/archive/2006/04/09/442332.aspx


One of the new features I talked about was the "App_Offline.htm"
feature in ASP.NET 2.0, which provides a super convenient way to bring
down an ASP.NET application while you make changes to it (for example:
updating a lot of content or making big changes to the site where you
want to ensure that no users are accessing the application until all
changes are done).

The way app_offline.htm works is that you place this file in the root
of the application. When ASP.NET sees it, 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. When you are done
updating the site, just delete the file and it will come back online.

One thing I pointed out in the talk that you want to keep an eye on is
a feature of IE6 called "Show Friendly Http Errors". This can be
configured in the Tools->Internet Options->Advanced tab within IE, and
is on by default with IE6. When this is on, and a server returns a
non HTTP-200 status code with less than 512 bytes of content, IE will
not show the returned HTML and instead substitutes its own generic
status code message (which personally I don't think is super friendly
<g>).

So if you use the app_offline.htm feature, you should make sure you
have at least 512 bytes of content within it to make sure that your
HTML (instead of IE's friendly status message) shows up to your
users. If you don't want to have a lot of text show-up on the page,
one trick you can use is to just add an html client-side comment with
some bogus content to push it over 512 bytes. For example:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://
www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

<head>

<title>Site Under Construction</title>

</head>

<body>

<h1>Under Construction</h1>



<h2>Gone to Florida for the sun...</h2>



<!--

Adding additional hidden content so that IE Friendly Errors don't
prevent

this message from displaying (note: it will show a "friendly" 404

error if the content isn't of a certain size).



<h2>Gone to Florida for the sun...</h2>

<h2>Gone to Florida for the sun...</h2>

<h2>Gone to Florida for the sun...</h2>

<h2>Gone to Florida for the sun...</h2>

<h2>Gone to Florida for the sun...</h2>

<h2>Gone to Florida for the sun...</h2>

<h2>Gone to Florida for the sun...</h2>

<h2>Gone to Florida for the sun...</h2>

<h2>Gone to Florida for the sun...</h2>

<h2>Gone to Florida for the sun...</h2>

<h2>Gone to Florida for the sun...</h2>

<h2>Gone to Florida for the sun...</h2>

<h2>Gone to Florida for the sun...</h2>

-->

</body>

</html>

Yes -- it looks a little weird, but works. :-)

Hope this helps,

Scott
Reply all
Reply to author
Forward
0 new messages