Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 处理由使用HTTP请求正文的“MediaTypeFormatter”引发的异常时,记录HTTP请求正文_Asp.net_Asp.net Web Api2 - Fatal编程技术网

Asp.net 处理由使用HTTP请求正文的“MediaTypeFormatter”引发的异常时,记录HTTP请求正文

Asp.net 处理由使用HTTP请求正文的“MediaTypeFormatter”引发的异常时,记录HTTP请求正文,asp.net,asp.net-web-api2,Asp.net,Asp.net Web Api2,我有一个Web Api 2.2控制器操作,如下所示: [HttpPost] [Route("{id}")] public void Update(int id, [FromBody] MyData data) {} HTTP客户端使用application/json消息正文发出POST请求,但有时System.Net.HTTP.Formatting.JsonMediaTypeFormatter无法解析正文包含的json,并在调用控制器操作之前抛出异常 在这种情况下,我想记录格式化程序抛出的异

我有一个Web Api 2.2控制器操作,如下所示:

[HttpPost]
[Route("{id}")]
public void Update(int id, [FromBody] MyData data)  {}
HTTP客户端使用
application/json
消息正文发出POST请求,但有时
System.Net.HTTP.Formatting.JsonMediaTypeFormatter
无法解析正文包含的json,并在调用控制器操作之前抛出异常

在这种情况下,我想记录格式化程序抛出的异常和导致异常的JSON文本。我希望这种情况发生在生产中(以便正确地解释失败请求的失败),因此,在这里仅仅“跟踪”是不可接受的选择。我觉得这是一件可以接受的事情

乍一看,全局错误处理工具正是这里的东西。但是在我的
System.Web.Http.ExceptionHandling.ieexceptionlogger
中,不再有机会阅读消息正文:

public override void OnException(HttpActionExecutedContext context)
{        string body = await context.Request.Content.ReadAsStringAsync(); // essentially
    // body is an empty string!  the formatter already consumed it, and it's not available now
}
对于ASP.NET和/或Web Api 2扩展点,我有哪些选项来处理MediaTypeFormatter引发的异常和记录实际请求正文