session_end que net global_asax example ejemplo contiene asp asax abrir asp.net global-asax

asp.net - que - global.asax Application_Error no se dispara



global_asax (4)

Mi global.asax parece no estar disparando. Yo tengo:

void Application_Error(object sender, EventArgs e) { // Code that runs when an unhandled error occurs Server.Transfer("~/ExceptionFormView.aspx"); }

En mi web.config, no tengo nada como CustomErrors. Como quiero que todo sea manejado por Global.asax y transferido a ExceptionFormView.aspx.

Funciona bien localmente, pero no cuando lo implementamos en servidores. ¿Alguna idea?

¿Necesito PrecompiledApp.config?



Si anteriormente implementó su aplicación como precompilada pero ahora no lo está, entonces sí, debe eliminar PrecompiledApp.config y su Deployment.dll en el directorio bin. .NET utilizará el código global en Deployment.dll en lugar de sus cambios.


Si está utilizando IIS 7, intente configurar:

Response.TrySkipIisCustomErrors = true;


Si no tiene una sección customErrors en su Web.config, es lo mismo que tener la sección con mode="RemoteOnly" . Este modo customError hará que las solicitudes locales (realizadas desde el servidor que ejecuta IIS) no utilicen errores personalizados y ejecutará el método Application_Error() como se esperaba. Las solicitudes remotas utilizarán customErrors y no ejecutarán el método mencionado anteriormente.

Esto explica por qué está viendo un comportamiento diferente localmente que en su servidor. Puede reproducir este comportamiento en cualquier entorno cambiando el modo customErrors a On u Off explícitamente. On no ejecutará la sección Application_Error() mientras que Off lo hará.

<customErrors mode="On|Off|RemoteOnly" />

Esto no resuelve su problema, por supuesto, y usted quiere que el método se ejecute independientemente. Tengo una recompensa por otra pregunta en la que estamos tratando de averiguar por qué el método Application_Error() no se está activando cuando el modo customErrors está activado. Vuelve allí en un par de días para ver si hemos encontrado una solución.