asp.net会话状态

时间:2009-05-18 22:54:25

标签: asp.net session

在会话开始期间,可以访问Request对象。 Session End怎么样,它仍然可以访问Request对象吗?例如,我想计算当前连接到我的应用程序的浏览器数量。

编辑1:如果Session End无权访问Request Object,它可以访问哪些信息?会话ID等?

编辑2:如果会话结束不能用于跟踪断开连接,那么如何跟踪ASP.Net中的断开连接?

由于

3 个答案:

答案 0 :(得分:1)

不,Request对象在Session End中不可用。

另请注意,Session End仅在您从代码调用Session.Abandon()时触发,而不是在Session因自然超时或您拥有的内容而过期时触发。因此,它不是用于跟踪断开连接的可靠方法。

答案 1 :(得分:1)

如果使用InProc,将触发Session_End。

会话_End将被解雇 1)n分钟不活动(n =超时值),或 2)如果有人调用Session.Abandon()

如果关闭浏览器,Session_End不会被触发。

Session_End需要设置会话状态。

如果需要原始的Request.Browser数据,则应将其保存在会话状态中。

在Session_End期间,它可以访问会话状态。

答案 2 :(得分:0)

来自the documentation

  

Session_OnEnd 事件发生在   会话被放弃或超时。的   Server内置对象,只有   应用程序对象,服务器对象和   会话对象对象可用。

     

<强>说明

     

您无法调用Server.MapPath   Session_OnEnd脚本中的方法。通过   默认情况下,Session_OnEnd作为   匿名用户,定义为   应用。如果那里   不是匿名用户,也不是登录   对于匿名用户失败,   不会调用OnEnd函数,并且   将记录一个事件。