System.Web.HttpContext.Current обнуляется после проверки кэша

Сегодня я столкнулся со странной проблемой, которая не имела для меня никакого смысла. Вот краткое изложение:

Внутри метода я проверяю кэшированный элемент, как показано ниже:

private async Task<RatesStatus> getRatesStatusAsync() {

    //...

    if (_currentHttpContext != null) {

        //Here, I am checking for a Cached item
        var cachedRatesStatusObj = HttpContext.Current.Cache[Constants.RATESSTATUS_CACHE_KEY_NAME];
        if (cachedRatesStatusObj != null)
            return (RatesStatus)cachedRatesStatusObj;
    }

    //...

    cacheRatesStatusObject(ratesStatus);

    //...
}

Здесь HttpContext.Currentне равно null, как ожидается внутри приложения ASP.NET. Затем внутри метода cacheRatesStatusObjectя проверяю, является ли HttpContext.Currentнулевым значением или нет, как показано ниже:

private void cacheRatesStatusObject(RatesStatus ratesStatus) {

    //...

    //Seeing if HttpContext.Current is null or not first.
    //and it is null here...
    if (HttpContext.Current == null)
        return;

    //...
}

И здесь оно равно нулю. Понятия не имею, что здесь происходит. Есть мысли?

5
задан tugberk 11 May 2012 в 15:01
поделиться