Сегодня я столкнулся со странной проблемой, которая не имела для меня никакого смысла. Вот краткое изложение:
Внутри метода я проверяю кэшированный элемент, как показано ниже:
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;
//...
}
И здесь оно равно нулю. Понятия не имею, что здесь происходит. Есть мысли?