获取在线并发用户数 - ASP.NET

时间:2010-05-03 04:37:38

标签: asp.net count

我想知道登录ASP.NET 2.0应用程序的用户数量。

要考虑的要点: 1)最简单的方法是使用Application或Cache对象来计算Session开始或结束的计数。但是,如果有工作进程回收,则会失败。不是吗?

2)无论会话是由进程/状态服务器管理还是由SQL服务器管理,都不应该有所区别。

3)最好是与网络农场架构无缝连接。

3 个答案:

答案 0 :(得分:6)

如果您使用内置的ASP.NET成员资格提供程序,那么就会有一个非常方便的Membership.GetNumberOfUsersOnline()方法。

(当然,它只适用于经过身份验证的用户......)

答案 1 :(得分:0)

您应该将用户的在线状态存储在数据库中。每次导航页面时,都会更新其LastActivity信息(在数据库表中)。

创建一个运行的SQL作业,如果存在X个不活动状态,则会将用户关闭(当然,如果他们确实按下了注销,则更新数据库以标记用户离线)

答案 2 :(得分:0)

ASP.Net附带了几个性能计数器

http://msdn.microsoft.com/en-us/library/fxk122b4.aspx

状态服务器会话有效 当前活动用户会话的数量。此计数器仅在运行状态服务器服务(aspnet_state)的计算机上可用。

请求/秒 每秒执行的请求数。这表示应用程序的当前吞吐量。在恒定负载下,此数字应保持在一定范围内,除非其他服务器工作(例如垃圾收集,缓存清理线程,外部服务器工具等)。