2013-02-22 6 views
5

अपवाद होने पर अपवाद प्रदर्शित करने के लिए मैं एक त्रुटि संदेश पृष्ठ बनाने का प्रयास कर रहा हूं, और पिछले पृष्ठ को वापस करने के लिए त्रुटि संदेश पृष्ठ पर एक वापसी बटन है अपवाद का कारण बन गया।त्रुटि संदेश को कैसे प्रबंधित करें: सत्र स्थिति इस संदर्भ में उपलब्ध नहीं है

यहां त्रुटि कोड को पुनर्निर्देशित करने के लिए उपयोग किया गया कोड है।

protected void btnAssign_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     SqlDataSource3.Insert(); 
    } 
    catch (Exception ex) 
    { 
     Session["Exception"] = ex; 
     Response.Redirect("~/ErrorMessage.aspx", false); 
    } 
} 

यहाँ यहाँ errorMessage पेज के लिए कोड है मेरी Global.asax फ़ाइल

void Application_Error(object sender, EventArgs e) 
{ 
    // Code that runs when an unhandled error occurs 
    Exception ex = Server.GetLastError().InnerException; 
    Session["Exception"] = ex; 
    Response.Redirect("~/ErrorMessage.aspx"); 
} 

के लिए कोड है।

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      Exception ex = (Exception)Session["Exception"]; 
      Session.Remove("Exception"); 
      Literal1.Text = "<p style='color:blue'><b>An unrecoverable error has occurred:</b></p><br /><p style='color:red'>" + ex.Message + "</p>"; 
     } 
    } 
    protected void btnReturn_Click(object sender, EventArgs e) 
    { 
     Response.Redirect("~/IncidentAssignment.aspx"); 
    } 

जब मैं सौंपें बटन क्लिक करें, यह errorMessage पेज खुल जाता है और अपवाद प्रदर्शित करते हैं, लेकिन जब मैं वापसी बटन पर क्लिक करें, कार्यक्रम दुर्घटनाग्रस्त हो गया और फ़ाइल Global.asax की ओर इशारा किया है और कहता है सेशन स्टेट इस में उपलब्ध नहीं है संदर्भ, जैसा कि blew में दिखाया गया है। enter image description here

मुझे यह नहीं मिला कि सत्र ["अपवाद"] नल क्यों है। अगर किसी ने मेरे प्रश्न का उत्तर दिया तो इसकी बहुत सराहना की जाएगी। धन्यवाद। कोड की पंक्ति है कि आपके के अंदर स्थित है का उपयोग करने का

उत्तर

1

बजाय:

PostBackUrl="insert your path here" 
:

protected void btnReturn_Click(object sender, EventArgs e) 
{ 
    Response.Redirect("~/IncidentAssignment.aspx"); 
} 

अपने बटन के आपके HTML कोड में पूरी तरह से है कि से छुटकारा, और, कोड की इस पंक्ति को जोड़ने

इसलिए, यह आपको आपके द्वारा शुरू किए गए पृष्ठ पर वापस ले जाना चाहिए।

+0

, हाँ। यह काम करता हैं। बहुत बहुत धन्यवाद। – mrqyue

6

आप एप्लिकेशन त्रुटि ईवेंट में सत्र स्थिति तक पहुंचने का प्रयास कर रहे हैं, जहां यह हो सकता है कि आपका सत्र ऑब्जेक्ट प्रारंभ नहीं हो रहा है। त्रुटि आपके आवेदन के किसी अन्य स्थान पर फेंक दी जा सकती है क्योंकि यह पूरे एप्लिकेशन को संदर्भित करती है।

आम तौर पर ऐसा होता है जब आपकी त्रुटि आपके अनुप्रयोगों पर प्रारंभिक चरणों में होती है ताकि सत्र ऑब्जेक्ट प्रारंभ नहीं किया जा सके। Begin_Request घटना में।

सत्र ऑब्जेक्ट तक पहुंचने से पहले आप शून्य जांच कर सकते हैं।

यानी

if (HttpContext.Current.Session != null) { //do your stuff} 
0

जब आप अपने web.config में एक त्रुटि पृष्ठ को परिभाषित, तो त्रुटि पृष्ठ में आप अपवाद (रों) यहां पहुंच सकते हैं: अच्छी तरह से

HttpContext.Current.AllErrors 

<customErrors mode="On" redirectMode="ResponseRewrite" defaultRedirect="~/ErrorPage.aspx"> 
</customErrors> 
संबंधित मुद्दे