7

मैं निर्धारित करने के लिए अगर एक Session चर मौजूद है कोशिश कर रहा हूँ, लेकिन मैं त्रुटि हो रही है:का पता नहीं लगा सकते हैं सत्र चर मौजूद है या नहीं

System.NullReferenceException: Object reference not set to an instance of an object.

कोड:

// Check if the "company_path" exists in the Session context 
    if (System.Web.HttpContext.Current.Session["company_path"].ToString() != null) 
    { 
     // Session exists, set it 
     company_path = System.Web.HttpContext.Current.Session["company_path"].ToString(); 
    } 
    else 
    { 
     // Session doesn't exist, set it to the default 
     company_path = "/reflex/SMD"; 
    } 

क्योंकि है कि Session नाम "company_path" मौजूद नहीं है, लेकिन मैं इसका पता नहीं लगा सकता!

उत्तर

22

यदि आप यह देखना चाहते हैं कि सत्र ["company_path"] शून्य है तो ToString() का उपयोग न करें। के रूप में if Session["company_path"] is null then Session["company_path"].ToString() will give you exception.

बदलें

if (System.Web.HttpContext.Current.Session["company_path"].ToString() != null) 
{ 
    company_path = System.Web.HttpContext.Current.Session["company_path"].ToString(); 
} 
else 
{ 
    company_path = "/reflex/SMD"; 
} 

if (System.Web.HttpContext.Current.Session["company_path"]!= null) 
{ 
     company_path = System.Web.HttpContext.Current.Session["company_path"].ToString(); 
} 
else 
{ 
     company_path = "/reflex/SMD"; 
} 
+0

उत्तर के लिए धन्यवाद, मुझे अभी भी एक ही त्रुटि मिल रही है हालांकि – Luke

+0

के साथ जांचें कि आपका वर्तमान थ्रेड System.Web.HttpContext तक पहुंच सकता है या नहीं? – Adil

+1

मैं इसे कैसे देखूं? मेरे पास System.Web' का उपयोग कर रहा है? क्या यह सही है? – Luke

0

करने के लिए, तो Azure पर तैनाती (अगस्त 2017) के रूप में, यह उपयोगी है अगर सत्र कुंजी सरणी आबादी है भी जांच करने के लिए , उदाहरण:

Session.Keys.Count > 0 && Session["company_path"]!= null 
संबंधित मुद्दे