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还是一个功能…对于其他正在寻找此问题实际答案的人: