Browse Source

Merge pull request #20595 from abpframework/auto-merge/rel-8-3/2932

Merge branch dev with rel-8.3
pull/20465/head
maliming 2 years ago
committed by GitHub
parent
commit
af472dd34a
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 16
      framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionFilter.cs
  2. 15
      framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionPageFilter.cs

16
framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionFilter.cs

@ -75,10 +75,18 @@ public class AbpExceptionFilter : IAsyncExceptionFilter, IAbpFilter, ITransientD
} }
else else
{ {
context.HttpContext.Response.Headers.Add(AbpHttpConsts.AbpErrorFormat, "true"); if (!context.HttpContext.Response.HasStarted)
context.HttpContext.Response.StatusCode = (int)context {
.GetRequiredService<IHttpExceptionStatusCodeFinder>() context.HttpContext.Response.Headers.Add(AbpHttpConsts.AbpErrorFormat, "true");
.GetStatusCode(context.HttpContext, context.Exception); context.HttpContext.Response.StatusCode = (int)context
.GetRequiredService<IHttpExceptionStatusCodeFinder>()
.GetStatusCode(context.HttpContext, context.Exception);
}
else
{
var logger = context.GetService<ILogger<AbpExceptionFilter>>(NullLogger<AbpExceptionFilter>.Instance)!;
logger.LogWarning("HTTP response has already started, cannot set headers and status code!");
}
context.Result = new ObjectResult(new RemoteServiceErrorResponse(remoteServiceErrorInfo)); context.Result = new ObjectResult(new RemoteServiceErrorResponse(remoteServiceErrorInfo));
} }

15
framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionPageFilter.cs

@ -103,10 +103,17 @@ public class AbpExceptionPageFilter : IAsyncPageFilter, IAbpFilter, ITransientDe
} }
else else
{ {
context.HttpContext.Response.Headers.Add(AbpHttpConsts.AbpErrorFormat, "true"); if (!context.HttpContext.Response.HasStarted)
context.HttpContext.Response.StatusCode = (int)context {
.GetRequiredService<IHttpExceptionStatusCodeFinder>() context.HttpContext.Response.Headers.Add(AbpHttpConsts.AbpErrorFormat, "true");
.GetStatusCode(context.HttpContext, context.Exception!); context.HttpContext.Response.StatusCode = (int)context
.GetRequiredService<IHttpExceptionStatusCodeFinder>()
.GetStatusCode(context.HttpContext, context.Exception!);
}
else
{
logger.LogWarning("HTTP response has already started, cannot set headers and status code!");
}
context.Result = new ObjectResult(new RemoteServiceErrorResponse(remoteServiceErrorInfo)); context.Result = new ObjectResult(new RemoteServiceErrorResponse(remoteServiceErrorInfo));
} }

Loading…
Cancel
Save