1. <strike id="x5xg0"><small id="x5xg0"><ruby id="x5xg0"></ruby></small></strike>
      <code id="x5xg0"></code>

      <code id="x5xg0"></code>

      <del id="x5xg0"><em id="x5xg0"><optgroup id="x5xg0"></optgroup></em></del>

      <th id="x5xg0"></th>
      <object id="x5xg0"><option id="x5xg0"></option></object><strike id="x5xg0"><video id="x5xg0"></video></strike>

      當前位置 主頁 > iis相關 >

        IIS設置_session被清空的解決方法

        欄目:iis相關 時間:2018-09-20 14:53

          經常聽到程序員會說,明明設置了很長的超時時間,為什么沒有生效呢?session很快就被清空了。
         
          asp.net默認的sessionstate模式是inproc(進程內),數據是在網站的應用程序池里面保存的。這樣在web.config設置的超時時間,是在應用程序池沒有發生回收的基礎上才是有效的。
         
          這樣就出現了問題,為什么應用程序池會發生回收?如何禁止應用程序池的回收,讓session的數據可以保存得時間長一點呢?
         
          這和IIS應用程序池的兩個設置有關:

         
          【回收】里面的【固定時間間隔(分鐘)】和【進程模型】里面的【閑置超時(分鐘)】,這兩項的默認設置大概是二十或三十分鐘的樣子。也就是說,在應用程序池的運行時間達到設置的間隔,應用程序池會發生回收,session會被清空;在網站空閑,即沒有請求的時間達到設置值,應用程序池會發生回收,session會被清空。
         
          這種回收的行為在一個正式運營的網站上面,是很不合適的。我覺得IIS的默認值是這樣也有點奇怪,因為默認值應該是一個最通用,適合最多人的一種設置,這兩項的默認值顯然不是?赡躻indows畢竟是最流行的桌面系統,考慮到回收可以節省資源,不影響其他的工作任務,才這樣設置的吧。服務器一般都是單一的工作任務,不進行回收帶來的價值,明顯是高于所消耗的資源的。
         
          所以,如上面的截圖所示,我建議把這兩項都設置為0,禁用這兩種回收行為。
      縮小 縮小 縮小 縮小
      雅彩彩票登录