代码之家  ›  专栏  ›  技术社区  ›  oekstrem

在任何给定的时刻,我如何找到我的站点(iis7/asp.net)的访问者/用户数量?

  •  5
  • oekstrem  · 技术社区  · 15 年前

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

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

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

    4 回复  |  直到 10 年前
        1
  •  4
  •   David Neale    15 年前

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

        2
  •  1
  •   Geoff    15 年前

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

    例如,会话通常持续预定义的持续时间,如30分钟。根据您希望用户在您的站点上停留的时间,会话的持续时间在很大程度上可以归因于用户不在您的站点上时的空闲时间。

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

        3
  •  1
  •   ChrisLively    15 年前

    实现这一点的一种方法是让iis日志将它们的数据推送到数据库中的表中,而不是本地文件系统中。这在web服务器级别很容易配置。

    然后你就可以很容易地绘制出图表,并显示出每天、当前、每周等的使用情况。

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

        4
  •  0
  •   Ted Nyberg    10 年前

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

    推荐文章