El archivo App_Offline.htm

A todos los webmasters nos es muy común la actualización de nuestras webs, desde solucionar algún pequeño bug o hasta actualizar gran parte de la web.

En todo caso, queda muy feo, sobretodo si tienes webs bastante visitadas, que el usuario vea errores causados porque los archivos están a mitad de subida, un archivo depende de otro, y ya sabéis, nada funciona bien hasta que se han subido todos los archivos.
Es más, es hasta probable que una vez todo actualizado, empiecen a saliros errores y urgentemente vayais corrigiendo pequeños olvidos del tipo "ups, debería haber subido esta carpeta en lugar de esta otra..."

Recuerdo mis tiempos de ASP 3.0, cuando para evitar esos errores ponía en algunos de los includes comunes a todas las páginas el típico response.end que, bien es cierto, hacía su función y no hacía otra cosa más que parar la ejecución ahí y mostrar por pantalla sólo lo que se hubiera procesado hasta ese momento.

Ahora, con ASP.NET todo es mucho más fácil (para variar, jeje). Cada vez que recibe la petición de servir una página, el motor de ASP.NET realiza un comprobación de la existencia del archivo App_Offline.htm. Si lo encuentra, no sirve la página que le hemos pedido, sino ese mismo archivo App_Offline.htm.

De modo que ya tenemos una forma muy elegante de informar al usuario que estamos actualizando el sistema, colocar nuestro App_Offline.htm en el directorio raíz. Ojo, no sirve ponerlo en un subdirectorio para que no muestre nada de ese subdirectirio, sólo vale ponerlo en el directorio raíz.

Lo mejor es que es un método totalmente independiente de nuestro código y estamos limitados únicamente por nuestra imaginación, ya que App_Offline.htm puede ser tan complejo como queramos (todo lo complejo que puede ser una página .htm).