[ASP.NET]Session遺失的幾種可能

  • 71615
  • 0
  • 2011-11-16

[ASP.NET]Session遺失的幾種可能

前言

還蠻常遇到人家發問的問題是Session值掉了,
所以在這邊作個整理,

希望各位前輩能幫忙補充一下文章中漏掉的部分。

 

介紹

  1. web.config裡的sessionState timeout屬性,單位是分鐘,如果該Session頁面idle超過這個設定,Session值就會不見。
  2. Code裡面執行了清除Session的動作,如Session.Abandon()、Session.Clear()、Session.RemoveAll()
  3. window.open與window.showModalDialog混合使用
  4. 機器名稱含『底線』
  5. IIS Application Pool中處理序數目設定
  6. web.config異動、dll異動、虛擬目錄的刪除與更名導致Dynamic Compilation
  7. Session因為cookieless互相干擾(感謝gipi哥的補充)
  8. 防毒軟體掃瞄(感謝gipi哥的補充)
  9. Src空字串,在IE6~8可能造成session遺失

 

結論

Session消失的問題,總是很麻煩,
通常都是在User-site的機器,『偶爾』跟『不知道為什麼』會出現Session值掉了的問題,不容易模擬出一樣的環境,
不管是因為時間、機器名稱設定、UI操作行為、IIS站台設定、虛擬目錄架構問題,都是不容易模擬和發現的錯誤。

希望整理出這一篇,可以幫到千千萬萬的developer和SE。也感謝網路上有這麼多前輩願意分享這樣的資訊。


blog 與課程更新內容,請前往新站位置:http://tdd.best/