我注意到我的SharePoint控制台应用中存在内存泄漏。 应用程序创建网站集和这样的子网站
using(SPSite site = new SPSite(rootUrl))
{
using(SPSite newSite = site.WebApplication.Sites.Add(...))
{
foreach(var s in subwebs) // subwebs is just a collection of models with title, url etc
{
Logger.Log(...);
using (SPWeb web = newSite.AllWebs.Add(s.Url))
{
Logger.Log(...);
} // SPWeb disposed
} // SPSite disposed
} // SPSite disposed
}
此应用运行几个小时后,内存消耗会显着增加。 是的,它为数十个网站集创建了数千个子网站。 4-5小时后内存消耗超过1.5 GiB。 SPSite和SPWebs正确处理(或者看起来像它们)并且 Microsoft.SharePoint.Upgrade.SPManager (根据内存分析器数据)消耗大部分内存。
导致这种情况的原因是什么?