Session.Abandon跟Session.Clear有何不同

Session.Abandon和Session.Clear有何不同

Session.Clear()就是把Session对象中的所有项目都删除了,


Session对象里面啥都没有。但是Session对象还保留。


Session.Abandon()就是把当前Session对象删除了,下一次就是新的Session了。(下一次新会话开始貌似并不会产生新的SESSIONID)


主要的不同之处在于当使用Session.Abandon时,会调用Session_End方法(InProc模式下)。当下一个请


求到来时将激发Session_Start方法。而Session.Clear只是清除Session中的所有数据并不会中止该


Session,因此也不会调用那些方法。


Clear &RemoveAll没啥区别,RemoveAll就是调用的Clear,所以最好调用Clear。