簡體   English   中英

IIS 6.0會話超時與Web.Config超時與應用程序池空閑超時

[英]IIS 6.0 Session Timeout Vs Web.Config Timeout Vs App pool Idle time out

我想增加IIS 6.0中托管的ASP.NET Web App的會話時間。 因此,我將站點的web.config中的SessionState計時更改為600分鍾。 但這沒有用,我的會話像一個小時后一樣超時。( Session["myVariable"] == null

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

現在,我嘗試通過轉到網站->屬性->主目錄選項卡->配置按鈕->選項選項卡,在承載此應用程序的IIS網站中設置超時值,並將其更改為600分鍾,仍然沒有運氣。 這里的問題是,這適用於經典的ASP Pages,而不適用於ASP.NET網站。 這表示我做錯了。

然后,我檢查了運行該應用程序的應用程序池(“應用程序池”->“屬性”->“性能”選項卡)。 這表示“回收工人流程(以分鍾為單位)”為10分鍾。 我閱讀了很多關於SO的問題,但是沒有一個問題給出了有關如何增加ASP.NET WebApp會話超時的明確答案。

我想知道這三個設置之間的區別,以及何時使用哪些設置以及如何增加WebApp的會話超時。

您在web.config中設置的超時是會話超時。 它控制Web應用程序的每個“會話”在到期前需要等待的時間。 假設有一個用戶登錄到您的應用程序,並且在20分鍾內未執行任何操作,然后單擊一個按鈕,那么該用戶將被注銷,需要再次登錄(假設會話超時為20分鍾)。 繼續工作的任何其他用戶都不會受到影響。

應用程序池回收是另一回事。 此設置可按照指​​示終止並重新啟動IIS中的工作進程。 因此,如果將其設置為10分鍾,就好像您每10分鍾重新啟動IIS。 因此,除非您將會話狀態保存在其他位置,否則使用該應用程序池的應用程序中的所有會話都將過期。

應用程序池中還有另一個設置,即空閑超時。 它還設置為分鍾,如果在該時間段內沒有請求,它也會終止工作進程。 如果只有您的應用程序在IIS中運行,則還應該增加此值以及web.config中的會話超時值。 否則,即使ASP.NET喜歡長時間保持其會話,應用程序池也不會保留。

可在應用程序池->高級設置->流程模型中找到此設置

暫無
暫無

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

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