मैं कुछ मौजूदा विचारों की तलाश कर रहा हूं कि मौजूदा एएसपीनेट (एमवीसी) एप्लिकेशन के भीतर सत्र स्थिति के सभी उपयोग को तुरंत कैसे ढूंढें।सत्र स्थिति के सभी उपयोगों को ढूंढना
प्रश्न में आवेदन आउटसोर्स किए गए विकास का विषय था, और उत्पादन में ठीक चल रहा है। लेकिन हमने हाल ही में महसूस किया है कि यह (हमारे पसंदीदा मार्ग) राज्य सर्वर के बजाय InProc सत्र स्थिति का उपयोग कर रहा है।
एक छोटे पैमाने पर परीक्षण में, हमने इसे स्टेटसर्वर पर स्विच कर दिया, और सभी ठीक काम किया। हालांकि, जब हम उत्पादन में तैनात थे, तो हमने अचानक बड़ी संख्या में त्रुटियों का अनुभव किया। मुझे यकीन नहीं है कि क्या ये त्रुटियां इस परिवर्तन के कारण हुई थीं (वे वास्तव में डेटाबेस स्तर की समस्याओं के बारे में शिकायत कर रहे थे), लेकिन परिवर्तन को हटाने से एप्लिकेशन को एक बार फिर से काम करने की इजाजत मिली (ऐसा इसलिए हो सकता है क्योंकि यह रीसायकल होने का कारण बनता है)।
तो इससे पहले कि मैं इसे फिर से स्विच करने का प्रयास करता हूं, मैं सत्र में रखी गई सभी वस्तुओं का एक संपूर्ण लेखा परीक्षा करना चाहता हूं (मैंने पहले कुछ नियंत्रकों पर एक त्वरित रूप से देखा था, और वे ठीक लग रहे थे)। अगर मेरे पास कोड पर पूर्ण नियंत्रण था, तो यह एक ऐसा स्थान है जहां मैं कक्षा (टिप्पणी सत्र तक पहुंचने के विभिन्न तरीकों को संकलित और ढूंढने के लिए) पर टिप्पणी करता हूं, फिर एक्सेसर्स को टिप्पणी करें, संकलित करें, और यात्रा करें प्रत्येक त्रुटि। लेकिन मैं .NET फ्रेमवर्क प्रकारों में निर्मित के साथ ऐसा नहीं कर सकता।
तो, प्रत्येक उपयोग को कैसे ढूंढें इस पर कोई स्मार्ट विचार?
मैंने प्रतिबिंबक का उपयोग करने का प्रयास करने का निर्णय लिया। मैं निम्न में से प्रत्येक के लिए विश्लेषण किया है "के द्वारा प्रयोग किया जाता है":
System.Web.HttpSessionStateBase.set_Item(String, Object) : Void
System.Web.SessionState.HttpSessionState.set_Item(String, Object) : Void
System.Web.SessionState.HttpSessionState.set_Item(Int32, Object) : Void
System.Web.HttpSessionStateBase.set_Item(Int32, Object) : Void
System.Web.HttpSessionStateBase.Add(String, Object) : Void
System.Web.SessionState.HttpSessionState.Add(String, Object) : Void
(और जाँच की है कि हम TempData कहीं भी उपयोग नहीं करते हैं)। क्या मुझे कोई अन्य मार्ग याद आ रहा है जिसके द्वारा सत्र सत्र में समाप्त हो सकता है?
आप अपने खुद के SessionState प्रदाता कि inproc प्रदाता लपेटता कर सकता है, लेकिन, जोड़ने के हो जाते हैं और दूर करने के लिए हर कॉल लॉग http://msdn.microsoft.com/en-us/library/ms178587.aspx । इस तरह आप अपने कोड में सत्र के हर उपयोग को ट्रैक करने के लिए कॉल स्टैक का उपयोग कर सकते हैं। –