2010-03-03 14 views
15

मैं एक ASP.NET MVC 2 परियोजना में इस प्रकार मेरी Web.Config फ़ाइल कॉन्फ़िगर किया है:ASP.NET MVC में Session_End() कहलाता है?

<sessionState mode="InProc" timeout="1"/> 

और Global.asax.cs में निम्नलिखित कहा:

protected void Session_End(object sender, EventArgs e) 
{ 
    System.Diagnostics.Debug.WriteLine("Session_End"); 
} 

protected void Session_Start(object sender, EventArgs e) 
{ 
    System.Diagnostics.Debug.WriteLine("Session_Start"); 
} 

Session_Start() जब एक नया उपयोगकर्ता पर चला जाता है कहा जाता है वेबसाइट। मैं Session_End() को निष्क्रिय समय के 1 मिनट के बाद बुलाया होगा, लेकिन ऐसा नहीं है। क्या मैं कुछ भूल रहा हूँ?

उत्तर

8

धैर्य रखें। घटना को बुलाया जाना चाहिए, लेकिन समय के बाद जरूरी नहीं है।

आप एक ब्राउज़र से कोशिश कर सकते हैं: एक सत्र प्रारंभ करें, इंतजार> 1 मिनट, एक पोस्टबैक करना किसी भी तरह

यह है कि समय समाप्त काम करता है सत्यापित करने के लिए मदद करनी चाहिए और मुझे लगता है कि आप भी देखेंगे SessionEnd उस समय हो रहा । अन्यथा, बस प्रतीक्षा करें और कुछ अन्य सत्र शुरू करें। सिस्टम इसे कभी-कभी कॉल करने के आसपास आ जाएगा।

+0

दिलचस्प है, मैं समझ गया होता यह सही 1 मिनट के निशान पर इसे कहते चाहते हैं –

1

परीक्षण के लिए युक्ति:Session.Abandon का उपयोग करें ताकि आपको अपने वास्तविक web.config मान से गड़बड़ न हो। बस एक सत्र मान सेट न करें और उसी अनुरोध के दौरान Session.Abandon पर कॉल करें या यह संग्रहीत नहीं होगा।

यहाँ कुछ अधिक जानकारी के साथ एक लेख के बारे में session_end

8

इस याद रखें:

आप सत्र में कुछ भी नहीं बचा है, तो session_end आग नहीं होगा। यदि आप पहले अनुरोध में सत्र में डेटा सहेज रहे हैं, और में उसी अनुरोध को छोड़कर सत्र_एंड को भी निकाल दिया नहीं जाएगा।

आशा है कि इससे मदद मिलती है!

टी

Btw: ASP.NET Session_End event not firing