-2

如何检查我的 asp.net 网站的当前访问者数量?我已经熟悉以下技术,但它并不接近准确的结果。

  • 创建应用程序变量 Application["UserCount"]
  • 在会话开始时增加它
  • 在会话结束时减少它

此技术不会检查请求是否来自网络爬虫、机器人或任何其他垃圾邮件服务器,这些服务器可能会在新会话中请求多个页面,从而使数量膨胀。

我想确保一个人打开了浏览器(移动或桌面)来查看我的网站,即使他正在同一窗口或不同窗口中查看其他网站,但至少我的网站至少在一个或一个选项卡中打开窗户。

像 ajax 隐藏请求生成器这样的东西会加载我的每个页面并告诉服务器我的站点是打开的。

谢谢。

4

2 回答 2

1

您可以查看请求中的用户代理。您可以使用它Request.Browser.Crawler来检查请求是否来自搜索引擎爬虫。如果浏览器是爬虫,它将返回 true。

您还可以使用对页面的 javascript 调用来更新访问者数量。这可以与上述技术相结合,以确保仅当请求是真实用户时才更新访问者计数。当您减少用户数量时,您还应该检查请求不是爬虫。例如

        //increase the user count
        if (Request.Browser.Crawler == false)
        {
            Application["user_count"] = +1;
        }

        //decrease the user count
        if (Request.Browser.Crawler == false)
        {
            Application["user_count"] = -1;
        }

您还可以使用应用程序的 global.asax 文件中的 Session_End 和 Session_Start 事件来执行相同的事件。

于 2012-04-18T15:50:36.403 回答
1

您可以使用应用程序来存储数据。对于网站或 Web 应用程序的早期阶段来说,这完全没问题。但是,您可能需要在加载站点时查看应用程序状态的多重访问问题。

于 2012-04-18T16:28:49.910 回答