- web.config裡的sessionState timeout屬性,單位是分鐘,如果該Session頁面idle超過這個設定,Session值就會不見。
- Code裡面執行了清除Session的動作,如Session.Abandon()、Session.Clear()、Session.RemoveAll()
- window.open與window.showModalDialog混合使用
- 機器名稱含『底線』
- IIS Application Pool中處理序數目設定
- web.config異動、dll異動、虛擬目錄的刪除與更名導致Dynamic Compilation
- Session因為cookieless互相干擾(感謝gipi哥的補充)
- 防毒軟體掃瞄(感謝gipi哥的補充)
結論
Session消失的問題,總是很麻煩,
通常都是在User-site的機器,『偶爾』跟『不知道為什麼』會出現Session值掉了的問題,不容易模擬出一樣的環境,
不管是因為時間、機器名稱設定、UI操作行為、IIS站台設定、虛擬目錄架構問題,都是不容易模擬和發現的錯誤。
引用出處來自這位微軟MVP的網誌