2009-03-16 14 views
140

में सत्र समय समाप्ति IIS 6.0 में एक एएसपी.NET 2.0 एप्लिकेशन चला रहा हूं। मैं सत्र टाइमआउट डिफ़ॉल्ट 20 मिनट की बजाय 60 मिनट होना चाहता हूं। मैंने किया है निम्नलिखितएएसपी.NET

  1. आवेदन में आईआईएस प्रबंधक/वेब साइट गुण/ASP.NET विन्यास सेटिंग्स में web.config में सेट 60 मिनट तक
  2. सेट सत्र टाइमआउट
  3. सेट निष्क्रिय समयबाह्य से 60 मिनट पूल गुण/प्रदर्शन।

मैं अभी भी 20 मिनट पर एक सत्र टाइमआउट हो रही है। क्या वहां मेरे कुछ और करने की आवश्यकता है?

+1

कैसे आप 20 मिनट मापा के बारे में जानकारी प्रदान करें। आइए सुनिश्चित करें कि 20 मिनट एक सत्र टाइमआउट है, और कुछ अन्य प्रकार नहीं है। –

+8

आठ साल बाद अपवोट/डाउनवोट तीर –

+1

के पास चेकमार्क का उपयोग कर स्वीकार किए गए गुणवत्ता के उत्तरों को चिह्नित करें, सही उत्तर अभी भी स्वीकार नहीं किया गया है। – Nathan

उत्तर

8

आमतौर पर है बस इतना ही है कि आप क्या करने की जरूरत ...

आप यह सुनिश्चित करें कि 20 मिनट के बाद, कारण यह है कि सत्र खो दिया जा रहा है, हालांकि निष्क्रिय होने से है कर रहे हैं ...

रहे हैं सत्र को क्यों मंजूरी दे दी जा सकती है इसके कई कारण हैं। आप आईआईएस के लिए इवेंट लॉगिंग सक्षम कर सकते हैं और फिर सत्र दर्शक को क्यों मंजूरी दे दी गई कारणों को देखने के लिए इवेंट व्यूअर का उपयोग कर सकते हैं ... आपको लगता है कि यह शायद अन्य कारणों से है?

तुम भी documentation for event messages और संबद्ध table of events पढ़ सकते हैं।

31

मैं web.config या आईआईएस के बारे में पता नहीं है। लेकिन मुझे विश्वास है कि सी # कोड से आप इसे पसंद

Session.Timeout = 60; // 60 is number of minutes 
+21

क्या यह केवल वर्तमान सत्र के टाइमआउट को समायोजित करेगा? या यह पूरे आवेदन के लिए टाइमआउट समायोजित करेगा? – Johncl

+1

[दस्तावेज़ीकरण] में कुछ भी नहीं (https://msdn.microsoft.com/en-us/library/system.web.sessionstate.httpsessionstate.timeout%28v=vs.110%29.aspx) इंगित करता है कि 'सत्र' सेटिंग। टाइमआउट' web.config या IIS का उपयोग करने से अलग है, इसलिए मुझे लगता है कि यह पूरे एप्लिकेशन के लिए है। – Drasive

+0

मुझे लगता है कि @Drasive सही है, लेकिन इसे कम से कम 2 अलग कनेक्टेड क्लाइंट सर्वर पर साबित करना चाहिए और निष्क्रिय सत्र टाइमआउट जांचना चाहिए। – QMaster

7

आप machine.config कि प्रभाव लेने जा सकता है में कुछ भी है कर सकता है? Web.config में सत्र टाइमआउट को सेट करना IIS या machine.config में किसी भी सेटिंग को ओवरराइड करना चाहिए, हालांकि, अगर आपके पास अपने एप्लिकेशन में सबफ़ोल्डर में कहीं भी web.config फ़ाइल है, तो वह सेटिंग आपके एप्लिकेशन की जड़ में एक को ओवरराइड कर देगी।

इसके अलावा, अगर मैं सही ढंग से याद है, IIS में टाइमआउट केवल .asp पृष्ठ को प्रभावित करता है, .aspx नहीं। क्या आप सुनिश्चित हैं कि web.config में आपका सत्र कोड सही है? इसे कुछ ऐसा दिखना चाहिए:

<sessionState 
    mode="InProc" 
    stateConnectionString="tcpip=127.0.0.1:42424" 
    stateNetworkTimeout="60" 
    sqlConnectionString="data source=127.0.0.1;Integrated Security=SSPI" 
    cookieless="false" 
    timeout="60" 
/> 
250

क्या आप फॉर्म प्रमाणीकरण का उपयोग कर रहे हैं?

फार्म प्रमाणीकरण यह समय समाप्ति के लिए खुद मान का उपयोग करता (30 मिनट। डिफ़ॉल्ट रूप से)। एक फॉर्म प्रमाणीकरण टाइमआउट उपयोगकर्ता को अभी भी सक्रिय सत्र के साथ लॉगिन पृष्ठ पर भेज देगा। यह आपके ऐप के व्यवहार की तरह दिख सकता है जब सत्र के समय एक दूसरे के साथ भ्रमित करना आसान बनाता है।

<system.web> 
    <authentication mode="Forms"> 
      <forms timeout="50"/> 
    </authentication> 

    <sessionState timeout="60" /> 
</system.web> 

रूपों की स्थापना सत्र टाइमआउट से कम कुछ करने के लिए समय-समाप्त उपयोगकर्ता, जिसमें किसी भी सत्र डेटा खोने के बिना वापस में लॉग इन करने के लिए एक खिड़की दे सकते हैं।

+0

आप सही हैं यह प्रमाणीकरण मोड सेटिंग थी। अभी ठीक लगता है। धन्यवाद – klone

+0

सभी फॉर्म प्रमाणीकरण कुकीज़ के बारे में: http://support.microsoft.com/kb/910443 –

+7

यदि मैं विंडोज प्रमाणीकरण का उपयोग कर रहा हूं तो क्या होगा? – HOY

-2

IIS में सत्र टाइमआउट मान बदलने के बाद, कृपया आईआईएस पुनरारंभ करें। इसे प्राप्त करने के लिए कमांड प्रॉम्प्ट पर जाएं। IISRESET टाइप करें और एंटर दबाएं।

+0

web.config फ़ाइल को संपादित करना स्वचालित रूप से आईआईएस को रीसेट करने का कारण बनता है। –

33

अपनी वेब.config फ़ाइल में निम्न कोड ब्लॉक का उपयोग करें। यहां डिफ़ॉल्ट सत्र समय 80 मिनट है।

<system.web> 
<sessionState mode="InProc" cookieless="false" timeout="80" /> 
</system.web> 

पॉपअप अलर्ट संदेश के साथ सत्र टाइमआउट के लिए निम्न लिंक का उपयोग करें।

Session Timeout Example

FYI करें: उपरोक्त उदाहरण DevExpress पॉपअप नियंत्रण के साथ किया है ताकि आप को अनुकूलित/सामान्य पॉपअप नियंत्रण के साथ DevExpress पॉपअप नियंत्रण प्रतिस्थापित करने की आवश्यकता है। अपने DevExpress का उपयोग कर अनुकूलित करने के लिए

3

कोई जरूरत नहीं है, तो आप प्रमाणीकरण का उपयोग कर रहे हैं, तो मैं web.config फ़ाइल में निम्न जोड़ने की सलाह देते।

मेरे मामले में, उपयोगकर्ताओं को समय बाहर पर प्रवेश पृष्ठ पर पुनः निर्देशित कर रहे:

<authentication mode="Forms"> 
    <forms defaultUrl="Login.aspx" timeout="120"/> 
</authentication> 
+0

मुझे यहां पर त्रुटि मिली है <प्रमाणीकरण मोड = "फॉर्म"> जब मैं इसे web.config –

6

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

0

अगर आप वेबसाइट के लिए सत्र टाइमआउट चाहते से हटाने web.config फ़ाइल से

<authentication mode="Forms"> 
     <forms timeout="50"/> 
</authentication> 

टैग कर रहे हैं।

0

के बाद से ASP.Net कोर 1.0 सत्र (vNext या जो भी नाम के लिए यह प्रयोग किया जाता है) को अलग ढंग से लागू किया जाता है। मैं Startup.cs में सत्र टाइमआउट मान बदल गया है, void ConfigureServices का उपयोग कर:

services.AddSession(options => options.IdleTimeout = TimeSpan.FromSeconds(42)); 

या यदि आप, आप की तरह कुछ कर सकते हैं appsettings.json फ़ाइल का उपयोग करना चाहते हैं:

// Appsettings.json 
"SessionOptions": { 
    "IdleTimeout": "00:30:00" 
} 

// Startup.cs 
services.AddSession(options => options.IdleTimeout = TimeSpan.Parse(Config.GetSection("SessionOptions")["IdleTimeout"])); 
-1

समय समाप्त संपत्ति समय निर्दिष्ट करता है मिनट के लिए आवेदन के लिए सत्र वस्तु को आवंटित अवधि। यदि उपयोगकर्ता रीफ्रेश या टाइम-आउट अवधि के भीतर किसी पृष्ठ का अनुरोध नहीं करता है, तो सत्र समाप्त होता है।

6,0 IIS: न्यूनतम स्वीकृत मूल्य 1 मिनट है और अधिकतम 1440 मिनट है।

Session.Timeout = 600; 
1

आईआईएस सत्र टाइमआउट मान क्लासिक .asp अनुप्रयोगों केवल, इस IIS कॉन्फ़िगरेशन पर नियंत्रित किया जाता है के लिए है। आपके मामले में ASP.NET ऐप्स के लिए, केवल web.config-निर्दिष्ट टाइमआउट मान लागू होता है।

1

आप IIS में यहां सेटिंग पा सकते हैं:

Settings

यह सर्वर स्तर, वेब साइट स्तर पर, या एप्लिकेशन "एएसपी" के अंतर्गत स्तर पर पाया जा सकता है।

मुझे लगता है कि तुम यहाँ web.config स्तर पर सेट कर सकते हैं। कृपया अपने लिए यह पुष्टि करें।

<configuration> 
    <system.web> 

     <!-- Session Timeout in Minutes (Also in Global.asax) --> 
     <sessionState timeout="1440"/> 

    </system.web> 
</configuration> 
2

https://usefulaspandcsharp.wordpress.com/tag/session-timeout/

<authentication mode="Forms"> 
    <forms loginUrl="Login.aspx" name=".ASPXFORMSAUTH" timeout="60" slidingExpiration="true" /> 
</authentication> 

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

में रखता हूं तो स्टैक ओवरफ़्लो में आपका स्वागत है। हालांकि यह एक सही समाधान हो सकता है, लेकिन आमतौर पर कुछ विवरण भी शामिल करना बेहतर होता है। – Gary99