【常見Session丟失緣由】程序員
一、Session超時,用戶打開頁面,頁面長時間不操做會致使此緣由數據庫
二、IIS應用程序池回收,或者重啓瀏覽器
三、Web.Config修改,即IIS應用程序池重啓緩存
四、dll被替換或者動態頁面修改,即IIS應用程序池重啓cookie
五、殺毒軟件對.config文件進行掃描,可能會致使IIS應用程序池回收less
六、用戶瀏覽器禁用cookiespa
七、其餘緣由blog
其餘緣由有點不負責,可是好多程序員沒法查明是什麼緣由致使Session丟失,但Session丟失我歸結爲兩大類,一個是數據的Key丟了,一個是Session內容數據庫的丟了,你們這樣就好理解了,用戶瀏覽器禁用cookie必定是Key沒了。IIS應用程序池回收一定會致使Session的內容緩存表丟失,固然還有一些其餘緣由。進程
解決Session丟失的漫長路io
解決過Session丟失的都會用到這幾種方法
一、InProc:將Session存到進程內。
二、StateServer:將Session存到獨立的狀態服務中(Asp.Net State Service)。
三、SqlServer:將Session存到SqlServer中。
四、Cookieless:設置客戶端Session存儲的方式。
用了這些方法以後,有的是該丟還丟,有的是穩定了速度卻慢了。
還有個這個Custom自定義模式,你們不要還停留在非開源模式下解決問題的思想,找找開源項目,必定能找到的,有人說ASP.NET上哪裏找開源啊,很是簡單NuGet,若是想了解開源,必定要學會使用NuGet。