使用Newtonsoft JsonConvert 遇到的内存溢出问题排查

由于该篇随笔讲述的问题内容比较少,所以我就不在开篇废话了。

 

近期公司的一个web项目,出现几次IIS进行内存溢出的问题,把服务器16G的内存都能吃完。前几次都没能最终定位到问题发生的位置。

昨天该问题又出现,终于灵光一现。以前遇到过Newtonsoft JsonConvert转换json数据成datatable的时候出现过内存溢出的情况。

经过仔细跟踪调试,发现如果在调用Newtonsoft JsonConvert.DeserializeObject的时候传入的json字符串不是预期的json格式, 该方法内部应该是未做好验证机制,代码中存在问题,导致内存溢出。VS中也报出了相应的错误。

解决办法:在调用Newtonsoft JsonConvert.DeserializeObject之前 对json字符串添加几层判断机制。

 

posted @ 2016-03-04 09:59  Coder_War  阅读(1575)  评论(0编辑  收藏  举报