簡體   English   中英

如何在asp.net中停止20分鍾后暫停會話超時?

[英]How to stop session timeout after 20minutes in asp.net?

我正在使用iis6來部署我的應用程序。 無論我如何更改iis配置中的超時或我添加一個global.asax文件來設置Session.Timeout,甚至使用會話狀態,我仍然在20分鍾后獲得會話超時,這太瘋狂了! 有人請幫幫我嗎? 我很困惑..

web.config中:

 <authentication mode="Forms">
          <forms name="__authcookie" loginUrl="LoginPage.aspx" timeout="60" protection="All" requireSSL="false" slidingExpiration="true" cookieless="UseDeviceProfile" enableCrossAppRedirects="false"/>
      </authentication>
      <sessionState mode="InProc" timeout="60" customProvider="AppFabricCacheSessionStoreProvider"></sessionState>
    <membership>
      <providers>
        <clear />
        <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
      </providers>
    </membership>
    <profile>
      <providers>
        <clear />
        <add name="AppFabricCacheSessionStoreProvider" type="Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider" cacheName="NamedCache1" sharedId="SharedApp"/>
        <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
      </providers>
    </profile>

在您的web.config文件中包含此內容:

使用web.config

    <sessionState timeout="minutes"/> 

使用IIS

在Internet服務管理器中更改以下超時。選擇大於默認值20的值。

  1. 選擇默認網站>屬性>主目錄>應用程序設置>配置>選項。

  2. 啟用會話狀態超時並將會話超時設置為60分鍾。

在此輸入圖像描述

  1. 選擇“應用程序池”>“DefaultAppPool”>“屬性”。

  2. 在“空閑超時”下的“性能”選項卡中,在空閑時為高於20的值設置關閉工作進程。

在此輸入圖像描述

IIS上的默認會話超時設置為20分鍾,但可以將其增加到最多24小時或1440分鍾。

我最近一直在努力解決這個問題。 似乎有很多地方你可以設置超時,但你的超時只會與設置最短的屬性一樣長。 以下是我發現的一些事情......

  • 正如大家建議的那樣,檢查web.config文件中“ sessionState ”節點的“ timeout ”屬性。 可以直接在web.config文件中編輯此值,也可以通過@Romil上面描述的IIS配置編輯此值(盡管在更高版本的IIS中UI已更改,但設置類似)。

  • 如果您正在實現Forms身份驗證,那么web.config文件中還定義了一個額外的超時設置。 在web.config中查找... system.web> authentication> forms節點,並將“ timeout ”屬性修改為所需的分鍾數。

  • 這是我忽略的那個......在IIS中(肯定是7.5版,可能更早,但我無法確認)右鍵單擊關聯的應用程序池並選擇“ 高級設置 ”。 在“ 過程模型 ”標題下(必要時展開),查找“ 空閑超時(分鍾) ”設置。 將其設置為所需的超時(分鍾)。 - 說明: sessionState> timeout設置會影響將會話ID存儲在瀏覽器中的cookie過期,但超時實際上決定了何時應關閉工作進程(尚未使用)。 一旦流程關閉,它就不再回憶現有的會話ID,因此瀏覽器cookie中的ID不再有用。

我希望這對那里的人有幫助。 這個問題讓我瘋狂了幾個小時,除了設置sessionState設置之外,我對這方面的信息很少感到驚訝。

祝你好運,G

Romil的答案確實有效,我的方式是我只更改應用程序的會話超時而不是空閑超時。 現在,在他展示的方式從20分鍾延伸到60分鍾之后,它的確有效!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM