Przełączenie aplikacji asp.net w tryb offline
Co rozumiem przez tryb offline ? Jest to przejście w taki tryb pracy gdzie wszystkie requesty przekierowane są na pewien landing page może informować np. że jest przeprowadzana aktualizacja, albo aplikacja jest przenoszona na nowy serwer, albo np. trwa aktualizacja serwera baz danych itp. Dzięki temu wysyłamy użytkownikom czytelny komunikat co się dzieje i nie stresujemy ich serwerem w ogóle nie odpowiadającym na requesty albo rzucający exceptionami na lewo i prawo bo schemat bazy się zmienił w między czasie. W ASP.NET od wersji 2.0 można to osiągnąć wrzucając plik app_offline.htm do głównego katalogu aplikacji. Po tym wszystkie requesty zostaną przekierowane na ten plik i użytkownik zobaczy cokolwiek tam wrzucimy. Funkcja ta działa także w ASP.NET MVC . Przykładowy plik może wyglądać tak (podaję za blogiem Scotta Guthrie)
<!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>
Jak widać jest to zwykły plik html. Dla starszych wersji IE ważne jest aby rozmiar dokumentu przekraczał 512 bajtów, inaczej pokaże się przyjazna strona z IE zamiast naszego landing page.