Buscar..


Redirigir a página de error personalizada

ASP.NET Core proporciona el middleware de páginas de códigos de estado , que admite varios métodos de extensión diferentes, pero estamos interesados ​​en UseStatusCodePages y UseStatusCodePagesWithRedirects :

  • UseStatusCodePages agrega un middleware StatusCodePages con las opciones dadas que comprueba las respuestas con códigos de estado entre 400 y 599 que no tienen un cuerpo. Ejemplo de uso para redireccionar:

    app.UseStatusCodePages(async context => {
      //context.HttpContext.Response.StatusCode contains the status code
    
      // your redirect logic
    
    });
    
  • UseStatusCodePagesWithRedirects agrega un middleware StatusCodePages a la canalización. Especifica que las respuestas deben manejarse mediante la redirección con la plantilla de URL de ubicación dada. Esto puede incluir un marcador de posición '{0}' para el código de estado. Las URL que comiencen con '~' incluirán PathBase, donde se usará cualquier otra URL tal como está. Por ejemplo, lo siguiente se redireccionará a ~ / errors / <error_code> (por ejemplo ~ / errors / 403 para el error 403):

    app.UseStatusCodePagesWithRedirects("~/errors/{0}");
    

Manejo global de excepciones en ASP.NET Core

UseExceptionHandler se puede usar para manejar excepciones de manera global. Puede obtener todos los detalles del objeto de excepción como Stack Trace, Inner exception y otros. Y luego puedes mostrarlos en pantalla. Puede implementar fácilmente como esto.

app.UseExceptionHandler(
 options => {
    options.Run(
    async context =>
    {
      context.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
      context.Response.ContentType = "text/html";
      var ex = context.Features.Get<IExceptionHandlerFeature>();
      if (ex != null)
      {
        var err = $"<h1>Error: {ex.Error.Message}</h1>{ex.Error.StackTrace }";
        await context.Response.WriteAsync(err).ConfigureAwait(false);
      }
    });
 }
);

Necesitas poner esto dentro de configure () del archivo startup.cs.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow