【发布时间】:2016-06-02 22:01:08
【问题描述】:
我正在尝试记录有关导致异常的请求的信息。
我正在尝试读取附加到下面的 ExceptionHandlerContext 的请求的内容:-
虽然我可以访问请求对象的其他部分,但它的内容总是空的。
目前看来,它已经在管道中被处理掉了。
有没有办法在堆栈中捕获这么远的请求正文?
public class GlobalExceptionHandler : ExceptionHandler
{
public override void Handle(ExceptionHandlerContext context)
{
var exception = context.Exception;
var test = context.Request.Content.ReadAsByteArrayAsync().Result;
var httpException = exception as HttpException;
if (httpException != null)
{
context.Result = new ErrorResult(context.Request, (HttpStatusCode)httpException.GetHttpCode(), httpException.Message);
return;
}
if (exception is BusinessRuleViolationException)
{
context.Result = new ErrorResult(context.Request, HttpStatusCode.PaymentRequired, exception.Message);
return;
}
context.Result = new ErrorResult(context.Request, HttpStatusCode.InternalServerError, exception.Message);
}
}
【问题讨论】: