2012-02-15 30 views
7

tengo este escenario:ASP.NET/Web.config: customErrors redirigir sólo en un 404

Un usuario entra a mi sitio y followes un enlace, existe duerma wich más, él debe ser redirigido a un ErrorPage personalizada . (eso funciona)

Si un usuario hace algo, arroja un error, debería ver el Stacktrace y el Errorpage real.

Este es mi Web.config actual:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <system.web> 
     <customErrors> 
      <error statusCode="404" redirect="/errors/404.htm" /> 
     </customErrors> 
     <compilation debug="true" strict="false" explicit="true" /> 
    </system.web> 
</configuration> 

con esta configuración, un 404 será redirigido al sitio correcto, pero un HTTP 500 se mostrará como siguiente:

Error del servidor en '/' Aplicación

Descripción: Se ha producido un error de aplicación en el servidor. La configuración de error personalizado actual para esta aplicación evita que los detalles del error de la aplicación se visualicen de forma remota (por razones de seguridad). Sin embargo, podría ser visto por los navegadores que se ejecutan en la máquina del servidor local.

Detalles: Para permitir que los detalles de este mensaje de error específico sean visibles en máquinas remotas, cree una etiqueta dentro de un archivo de configuración "web [.config" ubicado en el directorio raíz de la aplicación web actual. Esta etiqueta debería tener su atributo "modo" establecido en "Desactivado".

[...]

Pero en este caso quiero mostrar la StackTrace.

¿Cómo puedo hacer esto?

Nota: Estamos en Linux con un mono < - FastCGI -> Lighttpd construction.

Respuesta

0

Ray Van Halen respuesta es correcta, pero esto no fue el problema real.

El motivo por el que no se muestra stacktrace es un error en mono. No hay otra manera que escribir una página de error propia donde se muestra la pila.

13

En las siguientes entradas web.config, a (404) condición que no se encuentra enviará un usuario a PageNotFound.aspx

Utilice el modo = "off" y todo el mundo (usuarios locales y remotos) verán los detalles del error.

<customErrors mode="Off"> 
    <error statusCode="404" redirect="~/errorPages/PageNotFound.aspx" /> 
</customErrors> 

Uso mode = "RemoteOnly" y los usuarios locales verán las páginas de error detallados con un seguimiento de pila y los detalles de compilación. Los usuarios remotos con ser presentados con la página GeneralError.aspx

<customErrors mode="RemoteOnly" defaultRedirect="~/errorPages/GeneralError.aspx"> 
    <error statusCode="404" redirect="~/errorPages/PageNotFound.aspx" /> 
</customErrors> 
Cuestiones relacionadas