Сборка мусора глобального объекта Application в ASP.NET MVC C # - PullRequest
0 голосов
/ 03 сентября 2018

Я столкнулся с проблемой, когда в 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());
    }
}
...