淺談asp.net session time out問題

來源:互聯網
上載者:User

標籤:blog   http   io   ar   os   sp   for   strong   檔案   

公司已經在production的一個project最近有client反饋說登陸進網站之後,開著一整天沒動它,之後還是可以繼續操作。client那邊的IT部門要求我們提供session time out方面的設定,以及工作原理。自認為做了5年的web application,clients這個基本的要求可以很快搞定。

1. 檢查Web.config檔案裡面的timeout設定

在system.web下面的sessionState中,可以設定timeout屬性。項目中,發現同事把這個值設成了7200。這個數位單位是minute,同事錯以為是second,想設2個小時,卻設成了5天。

本以為這個就解釋了為什麼client開著一整天不去動,之後還可以繼續操作的問題。但是後面又接到反饋說,那個網站並不可以開著5天不會time out,有client開著一天多,就time out了。為什麼呢?

2. 檢查IIS Application Pool的Idle time out設定

這個設定的作用是,application pool在設定的時間範圍內沒有收到任何請求,就把網站的session time out。預設值是20 minutes。因此,當網站只有一個user登陸進來,之後的20分鐘他沒有發送任何請求給伺服器,而且這20分鐘內沒有其他user來訪問,那麼這個user在20分鐘後就會time out,而不是web.config設定的5天。

3. 檢查IIS Application Pool的Recycling設定

Regular Time Interval這個設定的作用是,IIS在設定的時間到期後,會強制回收所有的資源,進而導致網站session time out。預設值是1740 minutes。很可能這個1740分鐘,也就是29小時,是讓user time out的原因。前面的Idle time out的值不可以超過這個值。

如果到目前為止我理解都正確,那麼一個流量很大的網站,24小時不間斷會有使用者訪問,那每隔29個小時,在recycling期間登入使用者的session會丟失。

為了追蹤user time out的準確時間,我在global.asax中的session_start和session_end中寫入了文本log。需要注意的一點是,這個文本log不可以放在網站所有目錄。因為每次網站目錄中內容更改會觸發session time out。這點讓我花了很多時間去google才明白。

期待這個log的結果...

 

參考連結:

http://issuesdotnet.blogspot.sg/2012/06/directorydelete-expires-session-solved.html

http://forums.asp.net/t/1742313.aspx?session+expired+problem+after+deleting+a+folder+and+its+sub+folder+programatically+in+asp+net

http://www.thecodeking.co.uk/2011/08/why-sessionend-is-sometimes-called.html#.VG2skYuUfzl

http://stackoverflow.com/questions/19002254/what-is-the-default-expiration-time-of-a-cookie

http://erlend.oftedal.no/blog/?blogid=41

http://stackoverflow.com/questions/19985710/iis-idle-timeout-vs-recycle

http://technet.microsoft.com/en-US/en-en/library/cc771956(v=ws.10).aspx

http://bradkingsley.com/iis7-application-pool-idle-time-out-settings/

http://weblogs.asp.net/owscott/why-is-the-iis-default-app-pool-recycle-set-to-1740-minutes

淺談asp.net session time out問題

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.