Redirigir a páginas de error

En ciertas circunstancias, puede ser conveniente que, al surgir un error, el cliente sea redirigido a una página específica.

Antes de ASP.NET, el único modo de redirigir al usuario si surgía un error era configurando el servidor Web y explicitando qué página se encarga de qué tipo de error (Page Not Found: error 404, Server Error: error 500, etc.)

Con ASP.NET (y desde la versión 1.0), es muy sencillo definir a qué página se irá cuando surja un error, no hay más que configurar el web.config. Por ejemplo:

<configuration>
  <system.web>
    <customErrors defaultRedirect="GenericError.html" mode="RemoteOnly">
      <error statusCode="500" redirect="InternalError.html"/>
    </customErrors>
  </system.web>
</configuration>


Como es de imaginar, el atributo "defaultRedirect" indica a qué página se irá si surge un error que no hemos indicado explícitamente.

En cuanto al "mode", las opciones son "On", "Off" y "RemoteOnly", según si queremos que se activa, se desactive o que únicamente esté activado cuando se accede en remoto (Por meter leña al fuego... ¿Echamos en falta "LocalOnly"?).

Por último, el elemento "error" asigna una página específica según el código de estado (500: error interno de servidor, 404: página no encontrada, etc.)

Fijaos que es conveniente que se redirija a páginas .html, o en general a páginas que no maneje ASP.NET... imaginaos el enorme lío que puede montarse si ante un error 404, se redirija a una página .aspx que no existe; o ante un error 500, se redirija a una .aspx que también da error 500!!

Realmente no sé cómo se comporta ASP.NET en estos casos, pero creo que no querría saberlo