ASP.NET MVC C#中的全局应用程序对象的垃圾收集

时间:2018-09-03 14:40:47

标签: c# asp.net-mvc garbage-collection singleton httpapplicationstate

我遇到了一个问题,向HttpApplicationState中添加了长时间运行的单例,该单例执行一些数据屏蔽(GDPR),在后台运行一段时间后停止屏蔽数据。

很难调试,因为它仅发生在我们的UAT环境中,并且通常在一夜之间发生。

问题在于数据屏蔽库是第三方,并且仍在进行中(或在进行中时结束)。

但是,如果有人对GC有更好的了解,可以查看下面的初始化代码,并确认它不在GC域之内,我将不胜感激。

Translator.GetInstance()是GDPR屏蔽/翻译单例的惰性加载器。因此,它是在用户第一次屏蔽/取消屏蔽数据时初始化的。

protected void Application_Start()
{
    if (Translator)
    {
       Application["MaskDataUtility"] = new MaskDataUtility(Translator.GetInstance());
    }
    else
    {
       Application["MaskDataUtility"] = new MaskDataUtility(new CustomTranslator());
    }
}

0 个答案:

没有答案