수색…


맞춤 오류 페이지로 리디렉션

ASP.NET 코어는 여러 가지 다른 확장 메서드를 지원하는 상태 코드 페이지 미들웨어를 제공하지만 UseStatusCodePagesUseStatusCodePagesWithRedirects 에서 흥미 UseStatusCodePagesWithRedirects .

  • UseStatusCodePages 는 본문이없는 400과 599 사이의 상태 코드로 응답을 확인하는 지정된 옵션이있는 StatusCodePages 미들웨어를 추가합니다. 리디렉션에 대한 사용 예 :

    app.UseStatusCodePages(async context => {
      //context.HttpContext.Response.StatusCode contains the status code
    
      // your redirect logic
    
    });
    
  • UseStatusCodePagesWithRedirects 는 StatusCodePages 미들웨어를 파이프 라인에 추가합니다. 지정된 위치 URL 템플릿으로 리디렉션하여 응답을 처리하도록 지정합니다. 여기에는 상태 코드에 대한 '{0}'자리 표시자가 포함될 수 있습니다. '~'로 시작하는 URL은 PathBase를 앞에두고 다른 URL은 그대로 사용됩니다. 예를 들어 다음은 ~ / errors / <오류 코드>로 리디렉션됩니다 (예 : 403 오류의 경우 ~ / errors / 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);
      }
    });
 }
);

startup.cs 파일의 configure () 안에 넣어야합니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow