日期:2014-05-19  浏览次数:20566 次

关于Session_End
想在Session_End(object   sender,   EventArgs   e)里
处理application,

想问2个问题
1、如果是直接关闭页面,是不是过了timeout设置的时间后,服务器端会执行Session_End(object   sender,   EventArgs   e)   这个事件
2、用户名一直用   session[ "name "]   保存,在Session_End(object   sender,   EventArgs   e)里面怎么得到这个session的值(为了执行相应的Application.Remove( "serName ";)

------解决方案--------------------
先前说错了
你可以在这个方法中获得HttpSessionState对象,可以直接使用Session来访问即可。但是不能获得HttpContext对象,因为该事件并没有和任何请求相关联,因此不存在上下文对象。
调试一下看看吧 另外 关闭页面不行 告诉你一个方法 Session.Abandon() 可以触发Session_End 否则只能等待过期
------解决方案--------------------
1,关闭页面就会执行Session_End(object sender, EventArgs e)释放Session
2,定义一个string mystr=Session[ "name "]即可
浏览器会给每个客户端自动分配一个唯一的SessionId,用来区分多个客户端同时请求时每个响应返回给对应的客户端,这是用户察觉不到的,当关闭浏览器或者在超时无动作,则服务器会自动释放SessionId,使以前的过期不可再用
------解决方案--------------------
session[ "name "]把名字搞出来 去application里去找 找到就移