【问题标题】:User tracking in asp.netasp.net 中的用户跟踪
【发布时间】:2010-10-25 12:04:06
【问题描述】:

我正在开发一个 asp.net 应用程序,在该应用程序中我正在创建一个跟踪用户活动的页面,例如我的应用程序中没有访问过的页面。

其中我还需要找出每个用户自登录以来收到的总 KB(数据)和自登录以来发送的总 KB(数据)。

我怎样才能做到这一点?

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    这个问题实际上并没有明确什么包含在“发送/接收的总数据”中。虽然 HttpModule 可以帮助您处理 aspx 输出,但它不包括图像、css、js 等文件的大小。虽然我不确定他为什么想要这个,但它超出了 Google Analytics 的能力。

    我猜 HTTPModule 可以做到(?)如果您将所有资源类型映射为由 .NET 框架处理,那么您可以在为它们提供服务时“测量”所有不同文件的大小。通过跟踪登录 cookie(或您使用的任何东西),将所有这些数据写入数据库并近乎实时地报告它可能很容易(虽然可能很慢)。

    发送/接收字节的明显位置存储是 IIS 日志文件。使用LogParser 将使您能够报告该数据 - 如果您编写会话 cookie(或跟踪 IP 地址或其他),您可以将该数据链接到每个单独的用户登录。但是,仅基于 IIS 日志,几乎不可能“实时”完成。

    我看到的另一个可能对您有所帮助的开发人员项目是 Matt Berseth's 'openurchin'LiveTraffic page- 他的示例使用了类似 Google Analytics 的 javascript,但会将数据发回给您。您需要自己编写代码来解析/保存数据,包括找出发送/接收的字节信息。

    也许如果您提供更多关于您想要完成的任务的信息,我们可以提供更好的解决方案? Google Analytics 的作用真棒;并提供有关页面访问、进入、退出、唯一用户等的详细报告 - 非常直观的报告,易于使用。不过,并没有真正下降到“用户级别”。所以这一切都取决于你需要做什么......

    【讨论】:

    • 您好 Craig,感谢您提供此信息,由于某种原因,我们不会使用 Google Analytics。在我的页面中,我将显示其他详细信息,例如每个用户访问的 ip 地址、访问的页面数量等以及每个用户发送/接收的数据详细信息。我需要确认我是否需要包括图像大小、css 等,但最终目标是判断服务器上的负载。希望我已经解决了我的问题以求和扩展。
    【解决方案2】:

    首先,我会考虑您是否需要自己实现此功能,Google Analytics(分析)可以很好地跟踪使用情况并且是免费的。你可以在http://www.google.com/analytics 上找到它,你需要做的就是在你的所有页面中添加一些 javascript。您的母版页是执行此操作的好地方。

    如果您一心想要自己做这件事,实现它的一个好方法是使用 HttpModule。在每个页面请求期间都会调用一个 HttpModule。

    在 HttpModule 的 Init 方法中,您可以捕获 BeginRequest 和 EndRequest 事件。您可以查看 BeginRequest 中的 Request 对象和 EndRequest 中的 Response 对象。您可以在 ContentLength 属性中找到发送的数据量。您需要将所需的任何信息存储在数据库中。在显示用户活动的页面上,您只需从数据库中检索这些值。

    不过,我会认真考虑使用 Google Analytics。

    【讨论】:

    • 嗨,马克,感谢您提供此信息。我确实尝试了 httpmodule 解决方案,但 contentlength 属性仅适用于请求对象而不适用于响应对象。
    猜你喜欢
    • 1970-01-01
    • 2013-09-23
    • 2010-12-29
    • 2012-05-04
    • 1970-01-01
    • 2019-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多