Solución:
Resuma su lógica de manejo de errores de Application_Error
en su propia función. Cree un filtro de excepción de API web.
//register your filter with Web API pipeline
//this belongs in the Application_Start event in Global Application Handler class (global.asax)
//or some other location that runs on startup
GlobalConfiguration.Configuration.Filters.Add(new LogExceptionFilterAttribute());
//Create filter
public class LogExceptionFilterAttribute : ExceptionFilterAttribute
{
public override void OnException(HttpActionExecutedContext context)
{
ErrorLogService.LogError(context.Exception);
}
}
//in global.asax or global.asax.cs
protected void Application_Error(object sender, EventArgs e)
{
Exception ex = Server.GetLastError();
ErrorLogService.LogError(ex);
}
//common service to be used for logging errors
public static class ErrorLogService
{
public static void LogError(Exception ex)
{
//Email developers, call fire department, log to database etc.
}
}
Los errores de la API web no desencadenan el evento Application_Error. Pero podemos crear un filtro de excepción y registrarlo para manejar los errores. Consulte también Gestión global de errores en ASP.NET Web API 2.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)