की जांच के बाद खुद को नल करता है मुझे आज एक अजीब समस्या का सामना करना पड़ा जो मुझे कोई समझ नहीं आया। यहाँ एक सारांश है: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
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;
//...
}
और यह वहाँ रिक्त है। कोई विचार नहीं कि यहाँ क्या हो रहा है। कोई विचार?
मैं अपने विधि 'चिह्नित है async' का उल्लेख किया। बस यह सुनिश्चित करने के लिए, जहां भी आप इस विधि को बुला रहे हैं, आप 'प्रतिक्रिया' ग्राहक को वापस भेज दिए जाने से पहले कहीं भी 'प्रतीक्षा' कर रहे हैं और बंद कर दिया है, है ना? अन्यथा यह केवल दौड़ की स्थिति हो सकती है, जहां 'रेस्पॉन्स' वापस लौटाया जा रहा है और इस लाइन पर जाने से पहले निपटान किया जा रहा है, लेकिन अभी भी ऊपर की रेखा पर उपलब्ध है। –
@GuthMD हां, मैंने विधि के अंदर कहीं भी 'प्रतीक्षा' किया था। यह समस्या होनी चाहिए। – tugberk