Connection id “0HMGNTPDIIA4M“.Request id “0HMGNTPDIIA4M:00000001“:An unhandled exception was thrown

在生产环境的日志中经常看到一个error信息,具体内容如下,虽然不影响系统的使用,但是大量的出现,还是决定要解决掉它。

Connection id "0HMGNTPDIIA4M".Request id "0HMGNTPDIIA4M:00000001":An unhandled exception was thrown by the application

Connection id “0HMGNTPDIIA4M“.Request id “0HMGNTPDIIA4M:00000001“:An unhandled exception was thrown_第1张图片

从网上搜了下相关异常信息,看到了这篇文章:

NetCore MiddleWare System.InvalidOperationException: Headers are read-only, response has already_Farmwang的博客-CSDN博客 Response 已经生成 不允许修改 request HttpResponse也是一个抽象类,我们使用它来输出对请求的响应,如设置HTTP状态码,Cookies,HTTP响应报文头,响应主体等,以及提供了一些将响应发送到客户端时的相关事件。其 HasStarted 属性用来表示响应是否已开始发往客户端,在我们第一次调用 response.Body.WriteAsync 方法时,...https://blog.csdn.net/farmwang/article/details/87472459

感觉他说的跟自己项目中的不一样,没放在心上,自己研究了下,也没找到什么好的解决方法,就去请教了一下高手,高手说的跟上面文章中说的一样,决定还是从上面文章中说的方向入手去查找。

经过调试发现,系统中确实在频繁使用一个方法response.Body.WriteAsync(),这个方法在基础类中,前期排除这个问题的可能性就是因为他在基础类中,认为基础类不会有问题,实践证明,不要对任何地方心存侥幸,问题点找到就好解决了。

下图是原本的写法,意思是把调用第三方接口异常信息中,第三方接口返回401状态码的异常信息,被本项目捕获到异常后,本项目中继续以401状态码返回到前端。

Connection id “0HMGNTPDIIA4M“.Request id “0HMGNTPDIIA4M:00000001“:An unhandled exception was thrown_第2张图片

 修改后的方法:

Connection id “0HMGNTPDIIA4M“.Request id “0HMGNTPDIIA4M:00000001“:An unhandled exception was thrown_第3张图片

至此,问题解决。

你可能感兴趣的:(.net,core,.net,core)