由于该篇随笔讲述的问题内容比较少,所以我就不在开篇废话了。
近期公司的一个web项目,出现几次IIS进行内存溢出的问题,把服务器16G的内存都能吃完。前几次都没能最终定位到问题发生的位置。
昨天该问题又出现,终于灵光一现。以前遇到过Newtonsoft JsonConvert转换json数据成datatable的时候出现过内存溢出的情况。
经过仔细跟踪调试,发现如果在调用Newtonsoft JsonConvert.DeserializeObject的时候传入的json字符串不是预期的json格式, 该方法内部应该是未做好验证机制,代码中存在问题,导致内存溢出。VS中也报出了相应的错误。
解决办法:在调用Newtonsoft JsonConvert.DeserializeObject之前 对json字符串添加几层判断机制。
使用Newtonsoft JsonConvert 遇到的内存溢出问题排查
原文:http://www.cnblogs.com/Coder-War/p/5241042.html