这个问题遇到是几个月以前了,一个老的用.net core mvc写的升到.net core 2.1.6的时候发现内存泄漏,经过排查是因为闭包的问题导致的。
出现问题的代码类似如下:
public class XXXXXController : ControllerBase
{
protected XXXXContext context;
public ActionResult MatchList()
{
var matchs = context.Matches.Include(y => y.MatchBanner).OrderByDescending(x=>x.EndTime);
var recommends = context.Recommends.Include(y => y.Match);
return new JsonResult(matchs.Select(x => new
{
id = x.ID,
x.Title,
startTime = x.StartTime.ToString("yyyy-MM-dd"),
endTime = x.EndTime.ToString("yyyy-MM-dd"),
x.NeedVIP,
x.MatchDetail,
x.Price,
banner =x.MatchBanner.URL==null?GetImageUrl(x.MatchBanner.ID): x.MatchBanner.URL