今日、意味のわからない奇妙な問題に遭遇しました。要約は次のとおりです。
メソッド内で、次のようにキャッシュされたアイテムを確認します。
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
、ASP.NET アプリケーション内で予想されるように null ではありません。次に、cacheRatesStatusObject
メソッド内で、次のようHttpContext.Current
に null かどうかを確認します。
private void cacheRatesStatusObject(RatesStatus ratesStatus) {
//...
//Seeing if HttpContext.Current is null or not first.
//and it is null here...
if (HttpContext.Current == null)
return;
//...
}
そして、そこは null です。ここで何が起こっているのかわかりません。何かご意見は?