मैं इस पर कुछ समय के लिए उत्तर खोज रहा हूं क्योंकि यह मुझे परेशान करता रहा है। हम सत्र राज्य (इनप्रोक) में उपयोगकर्ता की वर्तमान गतिविधियों के बारे में उपयोगकर्ता लॉगिन जानकारी और अन्य डेटा संग्रहीत करते हैं। प्रत्येक बार अक्सर मुझे एक सत्र संदर्भ चर का उपयोग करने का प्रयास करने के लिए एक नल संदर्भ अपवाद मिलता है। यादृच्छिक सत्र चर के साथ, यह यादृच्छिक पृष्ठों पर होता है। मैं web.config httpRuntime और compliation टैग AppPool पुन: प्रारंभ होता रोकने के लिए संशोधित किया है:ASP.NET यादृच्छिक रूप से सत्र मान
<httpRuntime requestValidationMode="2.0" waitChangeNotification="86400" maxWaitChangeNotification="86400" />
<compilation debug="False" strict="false" explicit="true" targetFramework="4.0" numRecompilesBeforeAppRestart="1000" />
मुझे यकीन है कि यह does not जब लोग सर्वर का उपयोग करने में व्यस्त हैं पुनः आरंभ करने के लिए 3 बजे एप्लिकेशन पूल पुनः आरंभ करने के आईआईएस निर्धारित किया है। और मैं यह सुनिश्चित करने के लिए ईवेंट लॉग में ऐप पूल पुनरारंभ कर रहा हूं कि मुझे पता चल रहा है कि यह कब हो रहा है।
Dim runtime As HttpRuntime = GetType(System.Web.HttpRuntime).InvokeMember("_theRuntime", BindingFlags.NonPublic Or BindingFlags.Static Or BindingFlags.GetField, Nothing, Nothing, Nothing)
Dim shutDownMessage As String = runtime.GetType().InvokeMember("_shutDownMessage", BindingFlags.NonPublic Or BindingFlags.Instance Or BindingFlags.GetField, Nothing, runtime, Nothing)
Dim shutDownStack As String = runtime.GetType().InvokeMember("_shutDownStack", BindingFlags.NonPublic Or BindingFlags.Instance Or BindingFlags.GetField, Nothing, runtime, Nothing)
Dim evtSource As String = "ASP.NET"
Dim log As New EventLog
log.Source = evtSource
log.WriteEntry(String.Format("_shutDownMessage={0}{2}_shutDownStack={1}", shutDownMessage, shutDownStack, vbCrLf & vbCrLf), EventLogEntryType.Warning)
ऐप पूल पुनरारंभ होने पर मुझे ईवेंट लॉग प्रविष्टियां मिलती हैं। ये त्रुटियां होने पर ऐप पूल पुनरारंभ नहीं हो रहा है।
जब विशेष सत्र चर खो जाते हैं, तो उसी उपयोगकर्ता के लिए अन्य सत्र सत्रों में से अधिकांश अभी भी मौजूद हैं। साथ ही, आमतौर पर साइट पर लॉग इन किए गए 10-20 उपयोगकर्ता भी होते हैं जो ऐसा होने पर अप्रभावित होते हैं।
त्रुटि जो उपयोगकर्ता को त्रुटि मिलती है, वह फिर से उसी पृष्ठ पर जायेगी, और यह ठीक काम करेगी।
मुझे यह समस्या Windows Server 2003 (32 बिट) पर आईआईएस 6 चलाने के साथ .NET 3.5 32 बिट और 4 जीबी मेमोरी के साथ चल रही थी .. एक साल पहले हमारे सर्वर के उन्नयन के हिस्से के रूप में हमें एक नया वेबसर्वर मिला - विंडोज सर्वर 2008 (64 बिट) 16 जीबी मेमोरी के साथ आईआईएस 7 चला रहा है। मैंने वेबसाइट को .NET 4.0 64 बिट में अपग्रेड किया। अभी भी नई मशीन पर एक ही समस्या है (आमतौर पर प्रति दिन 1-3 बार - दिन के दौरान यादृच्छिक समय पर)।
मैं इसे अपनी यादृच्छिक प्रकृति के कारण अपने डिबगिंग में नहीं कर सकता, लेकिन मुझे विश्वास है कि यह हमारे देव पर्यावरण पर भी यादृच्छिक रूप से होता है। देव सर्वर के पास लगभग एक ही चश्मा उत्पादन के रूप में है।
दोनों वातावरण अलग-अलग हैं और एक वेब सर्वर के रूप में चल रहे हैं, न कि वेब फार्म का हिस्सा।
मैं सोच रहा हूँ कि मैं inproc मोड से बाहर निकलने के लिए एक राज्य सर्वर को लागू करने की कोशिश कर सकते हैं, लेकिन वह सिर्फ अंधेरे में एक और वार ..
राज्य सर्वर की कोशिश कर के अलावा है, ऐसा कुछ हो रहा है कर सकते हैं यह कब होता है यह पहचानने या इसे रोकने के लिए करते हैं?
स्टैक ओवरव्लो पर खोजने का प्रयास करें, कई सलाहयों के साथ बहुत सारे प्रश्न हैं – sll
क्या आप लोड बैलेंसर के पीछे दोनों वेब सर्वर चलाते हैं? (और क्या आप वाकई अपने कोड के माध्यम से अच्छी जांच कर चुके हैं, जहां ये सुनिश्चित किए गए हैं कि वे ओवरराइट नहीं हैं)? – Paddy
मैं कोड के माध्यम से बार-बार देख रहा हूं कि मैं अनजाने में उन्हें ओवरराइट कर सकता हूं, लेकिन मुझे कोई भी जगह नहीं मिल सकती है। साथ ही, यह अलग-अलग सत्र वर्रों के लिए कई अलग-अलग पृष्ठों पर होता है - और विभिन्न उपयोगकर्ताओं/ब्राउज़रों/प्लेटफ़ॉर्म के साथ। उदाहरण के बीच मुझे कोई सहसंबंध नहीं मिल सकता है जब यह होता है – Stephen