总是遇到ASP.NET Session过期,后来发现,目录删除及重命名操作 ,一定丢失Session。
如果你发现session突然无理由的丢失,而当你认真的检查代码并且排除其它常规可能丢失的可能性时,你可能会像我一样,几乎要接近崩溃~!
后来发现问题出在我用代码创建一个临时目录然后删除临时目录的删除操作上。
现在和大家分享下:希望对碰到类似钉子的朋友有用。。
说白了ASP.NET Session过期问题的实质就是:应用程序重起!
应用程序什么时候自动重起呢?
也就是说 asp.net 会监视应用程序目录,一但有被监视的动作发生(比如:修改了config、重命名目录等)应用程序就会自动重起
当然这时你的session一定丢失了。
如果避免不了这种操作(如:重命名目录);这里我们可以用cookie存信息或存到数据库去;
注意:除了以上列出的英文条件外。目录的删除操作一定会导致ASP.NET Session过期。asp.net的内部机制对待目录有点像个守财奴,它死守着目录,你创建它不会管(往里加),一但创建他就会监视该目录,若你要删除或重命名它的(动它的目录),它就发生重起了。。
【编辑推荐】