5

我需要显示有多少用户正在浏览我的网站。该站点在 iis7 上运行,我们使用的是 asp.net 3.5。

活动会话的数量是一个好方法吗?这个数字不需要非常准确。

不需要历史记录,我只想知道现在有多少用户“在线”,并将其显示在页面本身上。

4

4 回答 4

4

您可以为此使用 Windows 性能计数器 (perfmon)

ASP.NET 应用程序 > 会话活动计数器。

您可以使用 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

于 2010-04-27T09:05:31.233 回答
1

实现此目的的一种方法是简单地让 IIS 日志将其数据推送到数据库中的表中,而不是本地文件系统中。这很容易在 Web 服务器级别进行配置。

然后,您可以轻松地绘制图表并显示全天、当前、每周等的使用情况。

当然,如果您有一个高流量的网站,那么这将导致收集大量数据。

于 2010-04-27T13:30:18.050 回答
1

作为一般原则,您必须定义在线用户数的含义。

例如,会话通常持续一个预定义的持续时间,例如 30 分钟。根据您希望用户在您的网站上停留多长时间,会话的持续时间可能主要归因于用户不在您的网站上时的空闲时间。

一般来说,您需要在过去 n 分钟内在线的人。会话为您提供一段时间内的此统计信息(配置的会话到期),但还有许多其他时间度量可能更相关。

于 2010-04-27T09:08:26.427 回答
0

对于 EPiServer 网站,您可能需要查看 Live Monitor:http ://www.episerver.com/add-on-store/episerver-live-monitor/

于 2015-04-07T13:30:31.713 回答