我需要显示有多少用户正在浏览我的网站。该网站在iis7上运行,我们正在使用asp.net 3.5。
活跃会话的数量是一个好方法吗? 这个数字不需要非常准确。
不需要历史记录,我只是想知道现在有多少用户“在线”,并在页面上显示。
答案 0 :(得分:4)
您可以使用Windows性能计数器(perfmon)
ASP.NET应用程序> Sessions Active counter。
您可以使用System.Diagnostics命名空间访问这些性能计数器。
此代码对我有用:
PerformanceCounter pc = new PerformanceCounter("ASP.NET Applications",
"Sessions Active", "__Total__", "MYSERVERHOSTNAME.domain");
while (true)
{
Console.WriteLine(pc.NextValue());
System.Threading.Thread.Sleep(1000);
}
我遇到了这个问题所以如果计数器看起来太高,请看看这里:http://support.microsoft.com/kb/969722
答案 1 :(得分:1)
作为一般原则,您必须根据在线用户数量来定义您的意思。
例如,会话通常持续预定义的持续时间,例如30分钟。根据您希望用户在您网站上停留的时间长短,会话的持续时间可能主要归因于用户不在您网站上时的空闲时间。
一般情况下,您希望在过去n分钟内上线的人。会话为您提供一段时间(配置的会话到期)的统计信息,但还有许多其他时间措施可能更具相关性。
答案 2 :(得分:1)
实现此目的的一种方法是简单地让IIS日志将其数据推送到数据库中的表而不是本地文件系统中。这在Web服务器级别很容易配置。
然后,您可以轻松地绘制图表并显示全天,当前,每周等的使用情况。
当然,如果您拥有一个高度流量的网站,那么这将导致收集大量数据。
答案 3 :(得分:0)
对于EPiServer网站,您可能需要查看Live Monitor:http://www.episerver.com/add-on-store/episerver-live-monitor/