【问题标题】:the number of users online and number of active session在线用户数和活跃会话数
【发布时间】:2011-07-14 00:13:24
【问题描述】:

我的环境是 ASP.Net + IIS 7.0 + Windows Server 2008 + .Net 3.5。我想知道在线用户数和活动会话数是否相同?另一个问题是,无论它们是否相同,如何计算(即给定时间,在线用户数是多少,以及相关的活跃会话数)?

提前致谢, 乔治

【问题讨论】:

    标签: c# asp.net performance session iis-7


    【解决方案1】:

    第一个问题,会话和用户是不一样的。每个用户都有一个会话,但有些会话不活跃,不再有用户。此类会话会在超时后由 asp.net 引擎自动结束。也就是说,由于 http 是一个断开连接的协议,Web 服务器无法知道用户是在请求之间还是刚刚放弃了会话。

    如果要跟踪活动会话的数量,可以使用 globals.asax 文件的 session_start 和 session_end 方法。 你可以有一个简单的计数器,它在开始时递增,在结束时递减。

    【讨论】:

    • 感谢埃拉德!你的意思是会话只有在超时时才变得不活跃? (即在超时之前,会话都被视为活动的)?如果超时不是使会话不活动的唯一情况,还有其他情况吗?
    • 注意,只有在内存会话状态下才会调用 session_end。使用进程外状态(状态服务)或数据库,它不会被调用。
    • 如果我使用基于内存的会话状态,我想知道会话是否只是在超时时变得不活动? (即在超时之前,会话都被视为活动的)?如果超时不是使会话不活动的唯一情况,还有其他情况吗?
    • 会话以两种方式之一从内存中删除,超时或您通过代码结束它(在某些用户事件上,如注销等)。正如我所说,IIS 和 ASP.NET 无法知道会话是在请求之间还是在长时间没有来自该 sessio 的请求的情况下死亡。
    • 感谢 Elad,问题已得到解答。
    猜你喜欢
    • 2021-06-18
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    • 1970-01-01
    • 2016-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多