Error handling 从全局错误处理程序检索Request.Content的正确方法
我已经注册了一个全局异常处理程序,它会激发并包含除请求之外我所需的所有信息。。。我需要调试时传入的值Error handling 从全局错误处理程序检索Request.Content的正确方法,error-handling,asp.net-web-api2,Error Handling,Asp.net Web Api2,我已经注册了一个全局异常处理程序,它会激发并包含除请求之外我所需的所有信息。。。我需要调试时传入的值 Public class MyExceptionLogger : ExceptionLogger { public override void Log(ExceptionLoggerContext context) { try { ... other code
Public class MyExceptionLogger : ExceptionLogger
{
public override void Log(ExceptionLoggerContext context)
{
try
{
... other code
var methodName = context.Request.Method.ToString();
var errorUri = context.Request.RequestUri.ToString();
var errorMessage = context.Exception.Message;
var errorStackTrace = context.Exception.StackTrace.ToString();
var payload = context.Request.Content.ReadAsStringAsync().Result;
..... other code
}
}
}
从全局错误处理程序中检索Request.Content的正确方法是什么?在上面的代码中,内容属性已经被模型绑定器读取,因此始终为空
如何始终从异常中获取已发布的正文
我应该在自定义MessageHandler中检索并保存发布的正文吗
谢谢
Greg在尝试读取自定义消息处理程序中的request.Content的缓冲区。。如果我用下面的代码阅读它:
var payload = context.Request.Content.ReadAsStringAsync().Result;
什么都不要做。。。当模型绑定器读取缓冲区时,缓冲区不会被清空,因为它现在总是在我的异常记录器中。。。我不知道这是故意的还是怎么的,但它令人恼火 刚刚在我的
例外日志中注意到了相同的行为。不确定这是一个bug还是一个功能…对于其他正在寻找此问题实际答案的人: