2012-12-12 33 views
8

नहीं मिल रहा सुझाव के रूप में hereApplication_EndRequest सत्र

मैं folowing कोड लिखा है Global.asax.vb में Application_EndRequest में कुकी सेट करने के लिए कोशिश कर रहा हूँ, कुकी ERROR मूल्य हो जाता है। सत्र क्यों उपलब्ध नहीं है?

Sub Application_EndRequest(ByVal sender As Object, ByVal e As EventArgs) 
    Dim context As HttpContext = HttpContext.Current 
    If Not context.Session Is Nothing Then 
     context.Response.Cookies("T").Value = context.Session("T") 
    Else 
     context.Response.Cookies("T").Value = "ERROR" 
    End If 
End Sub 

उत्तर

11

सत्र Application_EndRequest ईवेंट में अब मौजूद नहीं है।

Application_PostRequestHandlerExecute आपके एप्लिकेशन से कोड निष्पादित होने के बाद बुलाया जाता है लेकिन SessionState जारी होने से पहले।

Sub Application_PostRequestHandlerExecute(ByVal sender As Object, ByVal e As EventArgs) 
    Dim context As HttpContext = HttpContext.Current 
    If Not context.Session Is Nothing Then 
     context.Response.Cookies("T").Value = context.Session("T") 
    Else 
     context.Response.Cookies("T").Value = "ERROR" 
    End If 
End Sub 
+0

मैं प्रत्येक HTTP अनुरोध के बाद निष्पादित कुछ ढूंढ रहा हूं, मैंने सोचा कि 'Application_EndRequest' ऐसा करता है। सत्र के अंत में अनुरोधों के बीच सत्र जारी नहीं किया जाना चाहिए। – JNF

+3

यह जारी नहीं किया गया सत्र है, लेकिन सत्रस्टेट, इसका नियंत्रण सर्वर पर वापस कर दिया गया है। अनुरोध को संभालने के ठीक बाद, प्रत्येक अनुरोध के लिए यह ईवेंट निकाल दिया जाता है (उर्फ "आपका कोड")। –