2010年4月20日 星期二

日前一直遇到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哥的補充)

結論

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

引用出處來自這位微軟MVP的網誌

沒有留言: