0

我遇到了一个问题,将一个长时间运行的单例添加到 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());
    }
}
4

0 回答 0