一位朋友的Linux .NET程序内存暴涨,用!maddress发现非托管内存占用高。经!dumpheap和!gcroot分析,发现SqlClient的SNIMarsConnection对象多达3765个,被SNIMarsManager持有。原因是连接字符串启用了MultipleActiveResultSets=True,且连接未及时释放。快速修复是去掉该选项,根治需优化代码或升级SQLClient版本。
完成下面两步后,将自动完成登录并继续当前操作。