asp.net会话状态

asp.net会话状态,asp.net,session,Asp.net,Session,在会话启动期间,用户可以访问请求对象。会话结束怎么样,它仍然可以访问请求对象吗?例如,我想计算当前有多少浏览器连接到我的应用程序 编辑1:如果会话结束不能访问请求对象,它可以访问什么信息?会话ID等 编辑2:如果会话结束不能用于跟踪断开连接,那么如何在ASP.Net中跟踪断开连接 谢谢否,请求对象在会话结束时不可用 还请注意,会话结束仅在从代码调用Session.about()时触发,而不是在会话因自然超时或其他原因而过期时触发。因此,它不是跟踪断开的可靠方法。 当出现以下情况时,将发生会话ON

在会话启动期间,用户可以访问请求对象。会话结束怎么样,它仍然可以访问请求对象吗?例如,我想计算当前有多少浏览器连接到我的应用程序

编辑1:如果会话结束不能访问请求对象,它可以访问什么信息?会话ID等

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


谢谢

否,请求对象在会话结束时不可用

还请注意,会话结束仅在从代码调用Session.about()时触发,而不是在会话因自然超时或其他原因而过期时触发。因此,它不是跟踪断开的可靠方法。

当出现以下情况时,将发生会话ONED事件: 会话被放弃或超时。属于 服务器内置对象,只有 应用程序对象、服务器对象和 会话对象可用

备注

无法调用Server.MapPath 方法在会话和脚本中。通过 默认情况下,Session_oned作为 匿名用户,如为 应用如果有 不是匿名用户或登录名 如果匿名用户失败,则 不会调用OnEnd函数,并且 将记录一个事件


如果正在使用InProc,将触发会话\ u End

会话结束将被触发 1) 不活动n分钟后(n=超时值),或 2) 如果有人调用Session.discard()

如果关闭浏览器,会话结束不会被触发

会话结束需要设置会话状态

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


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

Hi Rex,感谢您的回复,如何跟踪我的应用程序中当前连接的浏览器会话(例如Firefox 5会话、IE 10会话等)。在MSDN文档中,“会话结束子例程在调用放弃方法或会话过期时运行。”@GregB确实是这样说的,但当我第一次试图弄清楚为什么Session_End没有按我预期的方式工作时,我在Session_End事件上留下了一个带有断点的调试程序,它从来没有被命中,除非我显式调用Session.放弃(),我从未见过Session End在会话超时时被触发。有吗?@Rex M:Session End仅在使用进程内会话时触发,而不是在将状态服务器或SQL server用作会话存储时触发。能否提供如何在会话结束时访问会话的示例。我无法访问它…void Session_End(objectsender,EventArgs e){string str=Session[browser];}