繁体   English   中英

如何在任何给定时间找到站点(IIS7 / asp.net)的访问者/用户数?

[英]How can I find number of visitors/users at my site (IIS7/asp.net) at any given moment?

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

活动会话的数量是否是一个好方法? 该数字不必非常准确。

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

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

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

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

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

通常,您希望最近n分钟内一直在线的人。 会话会在一段时间内为您提供此统计信息(配置的会话到期),但是还有许多其他时间度量可能更相关。

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM