App_Offline.htm

Wczoraj dowiedziałem się o ciekawym triku dla usługi IIS, aby pokazać, iż strona jest chwilowo niedostępna. Metoda stara jak świat, więc aż wstyd się przyznać, że o niej wcześniej nie słyszałem. Niestety, jest ona słabo udokumentowana, w szczególności w bazach wiedzy Microsoftu – MSDN czy Technet. Troszkę mnie to zdziwiło, gdyż zasoby te są zwykle obfite we wszelakiego typu niezbędne informacje.

Przejdźmy jednak do meritum, całe rozwiązanie opiera się o plik o nader intuicyjnej nazwie App_Offline.htm, który wystarczy umieść w głównej gałęzi katalogu z aktualizowaną stroną. Usługa automatycznie wykrywa pojawienie się pliku i od tego momentu wszystkie przychodzące połączenia są automatycznie przekierowywane na niego.

Oczywiście w wszystkiego możemy również dokonać z poziomu Windows PowerShell i to tylko przy użyciu jednego cmdletu.

"You've reached the end of the Internet. Come back later." |
Out-File app_offline.htm

Jaki komunikat zostanie załączony to już zależy tylko od naszej wyobraźni, jednakże w przypadku niektórych przeglądarek (jak np. IE6), mogą wyniknąć problemy przy wykorzystaniu niewielkich rozmiarów pliku app_offline.htm (poniżej 512 bajtów). Dlatego by rozwiązać ten problem wystarczy sztucznie zwiększyć rozmiar pliku.

ConvertTo-Html -Body "You've reached the end of the Internet. Come back later." |
Out-File .\app_offline.htm

Po dokonaniu aktualizacji, wystarczy zdjąć nasz plik ze strony, ewentualnie zmienić nazwę by zachować kopię na przyszłe aktualizacje.

Zbliżony efekt możemy oczywiście uzyskać przy wykorzystaniu klasycznego przekierowania, ale wykonanie jest po prostu dłuższe.

Import-Module webAdministration</p>

$siteName = "Site Name"
$redirectPage = "http://sample.web.server.com/maintenanceMessage.htm”

Set-WebConfiguration system.webServer/httpRedirect "IIS:\sites\$siteName" `
-Value @{enabled="true";destination="$redirectPage";exactDestination="true";httpResponseStatus="Found"}

Źródła:
http://weblogs.asp.net/scottgu/archive/2005/10/06/426755.aspx
http://weblogs.asp.net/scottgu/archive/2006/04/09/442332.aspx
http://technet.microsoft.com/en-us/library/ee807820.aspx

Reklamy

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Wyloguj / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Wyloguj / Zmień )

Connecting to %s