ASP.NET Session過期問題揭秘
總是遇到ASP.NET Session過期,后來發(fā)現(xiàn),目錄刪除及重命名操作 ,一定丟失Session。
如果你發(fā)現(xiàn)session突然無理由的丟失,而當(dāng)你認(rèn)真的檢查代碼并且排除其它常規(guī)可能丟失的可能性時(shí),你可能會(huì)像我一樣,幾乎要接近崩潰~!
后來發(fā)現(xiàn)問題出在我用代碼創(chuàng)建一個(gè)臨時(shí)目錄然后刪除臨時(shí)目錄的刪除操作上。
現(xiàn)在和大家分享下:希望對碰到類似釘子的朋友有用。。
說白了ASP.NET Session過期問題的實(shí)質(zhì)就是:應(yīng)用程序重起!
應(yīng)用程序什么時(shí)候自動(dòng)重起呢?
也就是說 asp.net 會(huì)監(jiān)視應(yīng)用程序目錄,一但有被監(jiān)視的動(dòng)作發(fā)生(比如:修改了config、重命名目錄等)應(yīng)用程序就會(huì)自動(dòng)重起
當(dāng)然這時(shí)你的session一定丟失了。
如果避免不了這種操作(如:重命名目錄);這里我們可以用cookie存信息或存到數(shù)據(jù)庫去;
注意:除了以上列出的英文條件外。目錄的刪除操作一定會(huì)導(dǎo)致ASP.NET Session過期。asp.net的內(nèi)部機(jī)制對待目錄有點(diǎn)像個(gè)守財(cái)奴,它死守著目錄,你創(chuàng)建它不會(huì)管(往里加),一但創(chuàng)建他就會(huì)監(jiān)視該目錄,若你要?jiǎng)h除或重命名它的(動(dòng)它的目錄),它就發(fā)生重起了。。
【編輯推薦】