关于Web中Session失效

不要过于相信Session的Timeout属性,如果你把它设置为24小时,则很难相信24小时之后用户的Session还在。Session是否存在,不仅仅依赖于Timeout属性,以下的情况都可能引起Session丢失(所谓丢失就是在超时以前原来的Session无效)。

下面介绍一种情况

 bin目录中的文件被改写。Asp.net有一种机制,为了保证dll重新编译之后,系统正常运行,它会重新启动一次网站进程。那么怎么保证使用的是最新的dll呢?运行着的网站会一直监视bin目录,一旦bin目录中有任何文件变化,dll或者config变化,都会导致网站重启,即使人为的存放txt或者其他文件进行了编辑,网站也会重启。这时就会导致Session丢失。所以如果有access数据库位于bin目录,用户向access中写入了数据,网站就会重启,就会导致Session丢失。


 如何立刻让Session失效。比如用户退出系统后,Session中保存的所有数据全部失效,可以使用以下代码来让Session失效: Session.Abandon();

你可能感兴趣的:(关于Web中Session失效)