当会话到期时,asp.net在后台做什么?会话是否已完全处理,或者我是否需要在Global.asax中的Session.Abandon();
事件中添加Session_End
之类的内容?
答案 0 :(得分:3)
内存中状态 - 从会话列表中删除对象,并调用Session_End
。对于SQL会话状态,没有任何事情发生,并且将来不再为具有相同会话ID的请求返回数据,因为它与(ID +未过期)条件不匹配。
您无需在Session.Abandon()
中调用Session_End
,因为该事件在会话过期时调用(这正是Abandon
所做的)。
注释
Session_End
事件,因为out-ouf-process状态不会触发它。 答案 1 :(得分:1)
会话完全处理完毕。你不需要做任何特别的事情。 Session_End
是一个允许您在会话处理时执行操作的事件。
Session.Abandon()
是一个允许您随意终止会话的命令。
注意:如果您未在Session
中添加任何变量,则Session_End
将无法触发。
答案 2 :(得分:1)
如果您使用inproc会话提供程序,会话将被清除,因此您不需要致电Session.Abandon()
。