6

मुझे अपने उपयोगकर्ता से रिपोर्ट और शिकायतें मिल रही हैं कि वे एक स्क्रीन का उपयोग करेंगे और तुरंत उनके अगले स्क्रीन पर लॉग इन स्क्रीन पर लात मारे जाएंगे निवेदन। यह हर समय नहीं बल्कि यादृच्छिक रूप से होता है। वेब सर्वर को देखने के बाद एप्लिकेशन इवेंट लॉग में दिखाई देने वाली त्रुटि है:उपयोगकर्ताओं को सत्र और ऑथ टिकट टाइमआउट मानों से पहले यादृच्छिक रूप से फिर से लॉगिन करने के लिए मजबूर होना पड़ रहा है

इवेंट कोड: 4005 इवेंट संदेश: अनुरोध प्रमाणीकरण अनुरोध के लिए विफल रहा। कारण: आपूर्ति की गई टिकट समाप्त हो गई है।

जो कुछ भी मैं पढ़ता हूं वह वेब बागों या लोड संतुलन के बारे में पूछने वाले लोगों के साथ शुरू होता है। हम उनमें से किसी का भी उपयोग नहीं कर रहे हैं। हम आईआईएस 6 के साथ एक एकल विंडोज 2003 (32-बिट ओएस, 64-बिट हार्डवेयर) सर्वर हैं। यह भी इस सर्वर पर एकमात्र वेबसाइट है।

यह व्यवहार उपयोगकर्ता को कोई भी एप्लिकेशन अपवाद या दृश्यमान समस्या उत्पन्न नहीं करता है। वे सिर्फ लॉगिन स्क्रीन पर वापस बूट हो जाते हैं और लॉगिन करने के लिए मजबूर होते हैं। जैसा कि आप कल्पना कर सकते हैं कि यह हमारे उपयोगकर्ताओं के लिए बेहद परेशान और प्रति-उत्पादक है।

<authentication mode="Forms"> 
     <forms name=".TcaNet" 
     protection="All" 
     timeout="40" 
     loginUrl="~/Login.aspx" 
     defaultUrl="~/MyHome.aspx" 
     path="/" 
     slidingExpiration="true" 
     requireSSL="false" /> 
    </authentication> 

मैं भी पढ़ा है कि अगर आप कुछ स्थानों सेटअप है कि अब मौजूद नहीं हैं या फर्जी आप मुद्दों हो सकता है:

यहाँ है कि मैं क्या जड़ में आवेदन के लिए मेरी web.config में निर्धारित किया है है । मेरे पथ गुण सभी वैध निर्देशिका रहे हैं, ताकि समस्या नहीं होना चाहिए:

<location path="js"> 
    <system.web> 
     <authorization> 
     <allow users="*" /> 
     </authorization> 
    </system.web> 
    </location> 
    <location path="images"> 
    <system.web> 
     <authorization> 
     <allow users="*" /> 
     </authorization> 
    </system.web> 
    </location> 
    <location path="anon"> 
    <system.web> 
     <authorization> 
     <allow users="*" /> 
     </authorization> 
    </system.web> 
    </location> 
    <location path="App_Themes"> 
    <system.web> 
     <authorization> 
     <allow users="*" /> 
     </authorization> 
    </system.web> 
    </location> 
    <location path="NonSSL"> 
    <system.web> 
     <authorization> 
     <allow users="*" /> 
     </authorization> 
    </system.web> 
    </location> 

केवल एक चीज मैं स्पष्ट नहीं कर रहा हूँ है पर यदि प्रमाणन टिकट के लिए रूपों संपत्ति में मेरी टाइमआउट मान ही हो गया है मेरे सत्र टाइमआउट मान के रूप में (आईआईएस में ऐप की कॉन्फ़िगरेशन में परिभाषित)। मैंने कुछ चीजें पढ़ी हैं जो कहती हैं कि संभावित जटिलताओं से बचने के लिए आपको सत्र टाइमआउट (45) की तुलना में प्रमाणीकरण टाइमआउट कम (40) होना चाहिए। किसी भी तरह से हमारे पास ऐसे उपयोगकर्ता हैं जो अपनी अंतिम कार्रवाई के बाद एक या दो मिनट में लॉगिन स्क्रीन पर लात मारते हैं। इसलिए सत्र निश्चित रूप से समाप्त नहीं होना चाहिए।

अपडेट 2/23/09: मैंने सत्र सत्र समय और प्रमाणीकरण टिकट टाइमआउट मानों को 45 के लिए सेट किया है और समस्या अभी भी हो रही है।

आवेदन में केवल अन्य web.config 1 वर्चुअल निर्देशिका कि समुदाय सर्वर होस्ट करता है। यही कारण है कि web.config के प्रमाणन सेटिंग्स इस प्रकार हैं:

<authentication mode="Forms"> 
      <forms name=".TcaNet" 
      protection="All" 
      timeout="40" 
      loginUrl="~/Login.aspx" 
      defaultUrl="~/MyHome.aspx" 
      path="/" 
      slidingExpiration="true" 
      requireSSL="true" /> 
     </authentication> 

और जब मैं नहीं मानता कि यह लागू होता है जब तक आप एक वेब बगीचे में कर रहे हैं, मैं मशीन कुंजी दोनों web.config फ़ाइलों में सेट मूल्यों के दोनों है एक ही (सुविधा के लिए निकाला गया) होने के लिए:

<machineKey 
     validationKey="<MYVALIDATIONKEYHERE>" 
     decryptionKey="<MYDECRYPTIONKEYHERE>" 
     validation="SHA1" /> 

<machineKey 
     validationKey="<MYVALIDATIONKEYHERE>" 
     decryptionKey="<MYDECRYPTIONKEYHERE>" 
     validation="SHA1"/> 

किसी भी मदद के इस के साथ बहुत सराहना की जाएगी। यह उन समस्याओं में से एक प्रतीत होता है जो Google परिणामों का एक टन उत्पन्न करते हैं, जिनमें से कोई भी मेरी स्थिति में अभी तक उपयुक्त नहीं लग रहा है।

+0

65-बिट सॉफ्टवेयर! \ o/ – Bombe

+0

@don यह क्या हुआ? –

+0

कोई भी इसे समझता है? मेरे पास एक सिंगल-नोड (गैर-क्लस्टर) वेबसाइट है और एएसपी.नेट एमवीसी 4 आरसी में अपग्रेड करने के बाद मुझे यह त्रुटि मिलनी शुरू हुई - कार्यकर्ता प्रक्रिया के बाद सभी उपयोगकर्ता लॉग आउट हो गए। मेरे अन्य ऐप्स में से कोई भी प्रभावित नहीं है। – ShadowChaser

उत्तर

0

1.) जांचें कि आपकी आईआईएस प्रक्रिया कितनी बार पुनर्नवीनीकरण हो जाती है। (logging और check your settings चालू करें)। रीसायकल के बाद, प्रो सत्र स्टोर में डिफ़ॉल्ट का उपयोग करके, सत्र खो जाता है।

2.) क्या आपका एप्लिकेशन थ्रेड्स को फैलाता है जो अपवाद फेंक सकता है (जो कि उपयोगकर्ता को बीटीडब्लू नहीं दिखाया जाता है)? क्योंकि यदि वह स्थिति मौजूद है तो आईआईएस प्रक्रियाओं को अधिक बार फिर से चलाता है।

+0

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

+0

अरे यह। :) हाँ, वे निश्चित रूप से एक ही समय में बाहर निकाल दिया जाएगा। क्या आपका वेबसर्वर एकाधिक होस्ट-नामों के माध्यम से पहुंच योग्य है? जैसे क्या कभी-कभी www.domain1.com, कभी-कभी www.domain2.com है? क्या आप हमेशा सर्वर के FQDN या कभी-कभी 'वेब' और कभी-कभी 'web.domain.com' का उपयोग करते हैं? –

+0

डोमेन नाम सर्वर पर साइट तक पहुंचने वाले लोगों के लिए हमेशा समान होता है। साइट हमेशा विशिष्ट सबडोमेन द्वारा भी उपयोग की जाती है (यानी mysite.mydomain.com)। यह www.mysite.com या सिर्फ mysite.com पर नहीं है। तो मुझे लगता है कि उन दोनों को संभावित समस्या बिंदु नहीं हैं। – Don

2

यह आपके एप्लिकेशन पूल के लिए अधिकतम वर्कर प्रक्रिया संपत्ति की जांच करने योग्य भी हो सकता है। यदि आप मेमोरी सत्र में उपयोग कर रहे हैं और अधिकतम कार्यकर्ता प्रक्रिया के रूप में एक से अधिक हैं तो आप सत्र समस्याओं को ढूंढ सकते हैं क्योंकि उपयोगकर्ता अनुरोध को उनके सत्र से अनजान एक अलग थ्रेड द्वारा संभाला जाता है।

+0

यह केवल 1 पर सेट है – Don

1

चूंकि आपने ध्यान दिया है कि आप अपनी साइट के लिए एक बहुत ही विशिष्ट FQDN का उपयोग कर रहे हैं, क्या आपके पास कोई अन्य .NET अनुप्रयोग समान FQDN के अंतर्गत चल रहा है, केवल अलग वर्चुअल पथ? ऑथ कुकी का नाम दोनों अनुप्रयोगों के लिए समान हो सकता है, लेकिन टोकन अलग होगा। तो अगर मैं www.domain.com में लॉग इन करता हूं और फिर www.domain.com/app2 पर जाता हूं, तो मेरे पास अब ऐप 1 के लिए सही प्रमाणीकरण नहीं होगा।

0

मैंने अभी तक इस सटीक समस्या से निपटना समाप्त कर दिया है, जैसा कि प्रश्न में वर्णित है और समस्या web.config में कुछ गायब कॉन्फ़िगरेशन थी।

फॉर्म का उपयोग करते समय प्रमाणीकरण, आपको सत्र संभाल प्रमाणीकरण होने से रोकना होगा, क्योंकि कुकी अब इसके लिए ज़िम्मेदार है।

इस लाइन के लिए अपने वेब config में जोड़ा जा (या अद्यतन), "system.web" तत्व

<sessionState mode="Off"> 

sessionState और FormsAuthentication नहीं करना चाहिए दोनों सक्रिय होने में की जरूरत है। मैं एक दूसरे के साथ हस्तक्षेप के बारे में अच्छी जानकारी नहीं समझता, लेकिन इस मामले में, यह यादृच्छिक उपयोगकर्ताओं के यादृच्छिक लॉग आउट यादृच्छिक समय पर उत्पन्न करता है।

0

हमारी साइट ने कई वर्षों से एक ही समस्या के साथ ठोकर खाई है, लेकिन कल हमें एक फिक्स मिला, my question देखें। एक टिप्पणीकार के रूप में सुझाव दिया, मैं web.config को यह जोड़ने की कोशिश की:

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

जाहिर है, समय समाप्ति sessionState में और टिकट में दोनों सेट होना चाहिए। https://msdn.microsoft.com/en-us/library/ms178586.aspx

में एमएस दस्तावेज भी देखें और अधिक सही मिलीसेकंड समय

string.Format("{0:HH:mm:ss.fff} - {1}", DateTime.Now, strMessage); 
का उपयोग कर जोड़ा साथ, जबकि डिबग मोड में, मैं इसे तरीकों Session_Start() और Session_End() में फ़ाइल Global.asax.cs में Debug.WriteLine कॉल जोड़ना आसान पाया वास्तविक समय समाप्ति को मापने के लिए

ताकि आप प्रवेश कर सकते हैं, दोपहर के भोजन के लिए जाना है, सत्र समय बाहर जाने, और VisualStudio आउटपुट विंडो में कुछ सुविधाजनक समय समय टिकटों पढ़ें।

संबंधित मुद्दे