Поиск…


Перенаправление на страницу пользовательских ошибок

ASP.NET Core предоставляет промежуточное программное обеспечение страниц кода состояния , которое поддерживает несколько разных методов расширения, но мы заинтересованы в UseStatusCodePages и UseStatusCodePagesWithRedirects :

  • UseStatusCodePages добавляет промежуточное ПО StatusCodePages с заданными параметрами, которые проверяют ответы с кодами статуса между 400 и 599, которые не имеют тела. Пример использования для перенаправления:

    app.UseStatusCodePages(async context => {
      //context.HttpContext.Response.StatusCode contains the status code
    
      // your redirect logic
    
    });
    
  • UseStatusCodePagesWithRedirects добавляет промежуточное программное обеспечение StatusCodePages к конвейеру. Указывает, что ответы должны обрабатываться путем перенаправления с заданным URL-адресом URL-адреса. Это может содержать «{0}» место для кода состояния. У URL-адресов, начинающихся с '~', будет добавлен PathBase, где будет использоваться любой другой URL-адрес. Например, следующее будет перенаправлено на ~ / errors / <error_code> (например, ~ / errors / 403 для ошибки 403):

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

Обработка глобальных исключений в ядре ASP.NET

UseExceptionHandler можно использовать для обработки исключений во всем мире. Вы можете получить все детали объекта исключения, такие как Stack Trace, Inner exception и другие. И затем вы можете показать их на экране. Вы можете легко реализовать это.

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);
      }
    });
 }
);

Вы должны поместить это внутри configure () файла startup.cs.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow