with - ASP.NET/Web.config: customErrors redirige solo en un 404
mono.net download (2)
Tengo este escenario:
Un usuario viene a mi sitio y sigue un enlace, que ya no existe, debe ser redirigido a una página de error personalizada. (eso funciona)
Si un usuario hace algo, arroja un error, debería ver 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 se mostrará un HTTP 500 de la siguiente manera:
Error del servidor en la aplicación ''/''
Descripción: se produjo 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 se puedan ver 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 stacktrace.
¿Cómo puedo hacer esto?
Nota: Estamos en Linux con una construcción Mono <- FastCGI -> Lighttpd.
En las siguientes entradas web.config, una condición no encontrada (404) enviará a un usuario a PageNotFound.aspx
Use mode = "Off" y todos (usuarios locales y remotos) verán los detalles del error.
<customErrors mode="Off">
<error statusCode="404" redirect="~/errorPages/PageNotFound.aspx" />
</customErrors>
Utilice mode = "RemoteOnly" y los usuarios locales verán páginas de error detalladas con un seguimiento de pila y detalles de compilación. Usuarios remotos con la página GeneralError.aspx
<customErrors mode="RemoteOnly" defaultRedirect="~/errorPages/GeneralError.aspx">
<error statusCode="404" redirect="~/errorPages/PageNotFound.aspx" />
</customErrors>
Respuesta de Ray Van Halens es correcta, pero este no era el problema real.
La razón por la 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.