我正在使用 ASP.Net + .Net 3.5 + VS2008 + IIS 7.0 + C# 开发 Web 应用程序。我想统计有多少用户在线。这是我当前的实现,
- 当调用 Session_Start 时,我会将在线用户数增加 1;
- 当调用 Session_End 时,我会将在线用户数减少 1。
两个问题,
A 实现是否正确?
B.另一个问题是,我认为这种方法无法实时跟踪用户数,因为当用户关闭浏览器时,不会立即调用 Session_End(Session_End 将延迟调用)。正确吗?
请您参考如下方法:
您是否在使用 ASP.NET 成员身份?
Membership.GetNumberOfUsersOnline()
您可以在 web.config 中自定义将用户视为“在线”的时间量 - 例如
<membership defaultProvider="..."
userIsOnlineTimeWindow="10"
<providers>
....
</providers>
</membership>
阅读更多 here
