के रूप में वापस आ गया है मेरे पास इन-प्रो सत्र स्थिति के साथ एक उत्पादन समस्या है।एमवीसी 3 .NET सत्र यादृच्छिक रूप से सत्र मूल्य खो रहा है और शून्य
हमारे आवेदन MVC 3 नेट ढांचे पर आधार है और Sitecore सीएमएस चल हमारी साइट में एकीकृत है।
हमारे उपयोगकर्ताओं को अनुभव कर रहे हैं बाहर आवेदन प्रवाह के माध्यम से "ऑब्जेक्ट संदर्भ एक वस्तु का एक उदाहरण के लिए सेट नहीं" बेतरतीब ढंग से।
व्यापक प्रवेश करने के बाद और पता लगाने जब सत्र वस्तु अशक्त रिटर्न हम यह निष्कर्ष निकाल सकता है इस कारण होता था।
यहां हमें जो कुछ मिला और जो हम जानते हैं उसके बारे में कुछ विवरण यहां दिए गए हैं।
- सत्र आईडी ही उपयोगकर्ता के लिए लगातार किया जा रहा है और आवेदन में जिस तरह से सही ढंग से सभी पारित कर दिया है।
- मुझे विश्वास नहीं है कि यह एक कोड मुद्दा है, क्योंकि यह केवल यादृच्छिक अंतराल पर उत्पादन पर होता है, स्थानीय, देव या स्टेजिंग वातावरण पर कभी नहीं होता है।
- लोड उत्पादनकर्ता के माध्यम से दो उत्पादन सर्वर चल रहे हैं।
- कोई सर्वर लगातार समस्या नहीं है, क्योंकि हमने सर्वर में से किसी एक को सोकर और एक सर्वर पर सभी ट्रैफिक रूट होने का परीक्षण किया है। लॉगिंग के माध्यम से हम पहचान सकते हैं कि उपयोगकर्ता एक ही सर्वर पर टक्कर मार रहा है, लेकिन सत्र शून्य हो गया है।
- यह क्लाइंट समस्या भी प्रतीत नहीं होता है, क्योंकि वे पहले से ही किसी त्रुटि का सामना करते हैं, भले ही वे एप्लिकेशन के माध्यम से सफलतापूर्वक जा सकें।
- यह यातायात लोड या सर्वर लोड समस्या प्रतीत नहीं होता है, क्योंकि यह दिन के दौरान यादृच्छिक समय पर होता है, और यादृच्छिक उपयोगकर्ताओं के दौरान होता है।
- ऐसा लगता है कि यह ऐप पूल रीसाइक्लिंग के कारण नहीं होता है।
- यह सत्र समय समाप्ति के कारण प्रतीत नहीं होता है क्योंकि हमने टाइमआउट को दो घंटे के लिए सेट किया है और जब हम लॉग ट्रैक करते हैं, तो उपयोगकर्ता प्रवाह में 5-10 मिनट का अनुभव कर सकते हैं।
साइड नोट: हमें हमारे साइटकोर सीएमएस के कारण इन-प्रो सत्र स्थिति का उपयोग करना होगा। तो डिजाइन बदलना एक विकल्प नहीं है।
मैं एक सिद्धांत है यह सत्र लॉकिंग के साथ कुछ हो सकता है या समवर्ती पहुंच का प्रयास से भ्रष्ट किया जा रहा।
कुछ जगह हम इस समस्या को जब उपयोगकर्ता जावास्क्रिप्ट (windows.location) द्वारा पुनः निर्देशित किया जा रहा है हमारे आवेदन से बहुत कुछ है की घटना को देखते हैं।
और उन क्षेत्रों में जहां async AJAX कॉल किए जा रहे हैं।
हम थोड़ी देर के लिए इस पर हमारे सिर खरोंच कर दिया गया है, मैं अगर वहाँ किसी को भी क्या समस्या हो सकती है के लिए किसी भी जानकारी या सिद्धांत होता है सोच रहा हूँ?
धन्यवाद
जोड़ा नोट:
@Mystere & & @ H27Studio, तो मैं भी sessionid या सत्र रीसेट मुद्दों से संबंधित कुछ की खोज की है।कुछ मामलों में हम पाते हैं कि एक पृष्ठ पर रीडायरेक्ट करने पर यह दो डुप्लिकेट जीईटीएस कॉल को विधि में ट्रिगर कर रहा है, जिसमें पहले कॉल को सत्र आईडी गुम हो जाता है और यादृच्छिक रूप से सर्वर में से किसी एक पर रीडायरेक्ट किया जाता है (ऐसा इसलिए है क्योंकि लोड बैलेंसर से सर्वर लगातार सत्र है एक सर्वर पर क्लाइंट रखने के लिए अद्वितीय सत्र बनाने के लिए क्लाइंट आईपी, सत्र आईडी और अन्य शीर्षलेख जानकारी पर आधार)। जब हमारे रीडायरेक्ट पेज विंडो का उपयोग कर रहे हों तो यह हर बार प्रवाह के दौरान होता है। स्थान।
इससे क्लाइंट के लिए "ऑब्जेक्ट रेफरेंस सेट नहीं है .." समस्या खराब होगी, कोई सत्र आईडी कॉल उसी सर्वर पर नहीं मारा जाएगा। (संभवतः क्योंकि कोई सत्र आईडी वाला पहला बुरी कॉल एप्लिकेशन को एक नया सत्र बनाने का कारण बनता है जो मूल सत्र की ऑब्जेक्ट को ओवरराइड करता है) तो दूसरी कॉल पर जहां सही सत्र आईडी एप्लिकेशन में पास हो जाती है, हम पाएंगे कि सत्र ऑब्जेक्ट में शून्य है ।
तो मेरा मानना है कि डुप्लीकेट कॉल के साथ कोई समस्या है जो सत्र ऑब्जेक्ट को साफ़ कर रहा है, जो सुनिश्चित नहीं है कि क्यों या इससे शुरू होने का कारण क्या है।
किसी के पास इस बारे में सुराग है? धन्यवाद
अद्यतन: हम इस मुद्दे को हल करने के लिए इन चरणों को लेने की योजना बना रहे हैं।
- हम उन क्षेत्रों में जहाँ Async अजाक्स कॉल किए गए थे में मुद्दों है, इसलिए हम Async सुविधा को हटा कर उसे अजाक्स सिंक में चलाने की योजना बना रहे।
- हमारे पास ऐसे मुद्दे हैं जहां Windows.location जावास्क्रिप्ट रीडायरेक्ट हो रहा है। हमने इस क्षेत्र में इस मुद्दे को ठीक करने की उम्मीद में पोस्टबैक का उपयोग करके एक वैकल्पिक विधि बनाई है।
- अन्य क्षेत्रों, जो उपर्युक्त मुद्दे में से किसी एक से संबंधित नहीं हैं अभी भी हवा में हैं।
परिवर्तन के प्रभाव को पोस्ट करने के बाद इसे पोस्ट करने के बाद पोस्ट किया जाएगा।
सभी टिप्पणियों के लिए धन्यवाद।
ट्रस्ट सत्र टाइमआउट न करें। अगर सर्वर को अधिक मेमोरी चाहिए तो यह सत्रों को मुक्त कर देगा। मेरे पास नौकरी पर 1 घंटा सेट है, और अभी भी अधिकांश लोग 20 मिनट से पहले और कभी-कभी 5-10 में सत्र खो देते हैं। (और इसकी मशीन 6 जीबी रैम है, और बहुत अधिक ट्रैफिक नहीं है ...) – H27studio
मेरी कंपनी 'इनमाक' का उपयोग करके 'एल्माह' लॉगिंग आदि के बाद भी हमारे सिर खरोंच कर रही है ... –
@ H27studio, क्या आपके पास संदर्भ है "अगर सर्वर को अधिक मेमोरी चाहिए तो यह सत्रों को मुक्त कर देगा"? –