C# 中的分析

发布于 2024-10-12 15:49:04 字数 254 浏览 3 评论 0原文

我正在使用 C# 中的 Microsoft Enterprise 库记录来记录 SQL DB 中的事件,并将此记录用于分析目的。

C# 有没有更好的分析方法?例如“SQL Server 2008 中的 Microsoft StreamInsight”。

另一种方法是将 Javascript 嵌入到 Google Analytics 正在使用的 HTML 代码中。但这样我应该将所有日志数据以 HTTP post 的方式发送到日志服务器。

谢谢

I am using Microsoft Enterprise library logging in c# to log the events in SQL DB and I use this records for analytics purpose.

is there any better way for analytics in c#. for example "Microsoft StreamInsight from SQL Server 2008".

another way is embedding Javascript in HTML code which google analytics is using. But in this way I should send all my logging data to the logging sever in HTTP post.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

£烟消云散 2024-10-19 15:49:04

我发现有趣的一件事是,如果您想跟踪自己的用户,就需要实现操作过滤器。

如果您使用 ASP.NET MVC 3,您只需将此过滤器注册为全局过滤器,您将能够记录对每个控制器中的操作的每次访问。

整个 HttpContext 在这些方法中可用。

public class TrackerFilterAttribute : ActionFilterAttribute
{

    public TrackerFilterAttribute()
    {
    }

    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        base.OnActionExecuting(filterContext);

        //TODO: Do my tracking here.
    }
}

可以通过以下方式调用:

public class MvcApplication : System.Web.HttpApplication
{
    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new HandleErrorAttribute());
        filters.Add(new TrackerFilterAttribute());
    }

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );

    }

    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();

        RegisterGlobalFilters(GlobalFilters.Filters);
        RegisterRoutes(RouteTable.Routes);
    }
}

One thing I found interesting is that if you want to track your own users is to implement an action filter.

If you are using ASP.NET MVC 3, you just need to register this filter as a global filter and you will be able to record every access to an action in each controllers.

The whole HttpContext is available in those methods.

public class TrackerFilterAttribute : ActionFilterAttribute
{

    public TrackerFilterAttribute()
    {
    }

    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        base.OnActionExecuting(filterContext);

        //TODO: Do my tracking here.
    }
}

And this can be invoked in the following way:

public class MvcApplication : System.Web.HttpApplication
{
    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new HandleErrorAttribute());
        filters.Add(new TrackerFilterAttribute());
    }

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );

    }

    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();

        RegisterGlobalFilters(GlobalFilters.Filters);
        RegisterRoutes(RouteTable.Routes);
    }
}
卸妝后依然美 2024-10-19 15:49:04

分析是一种基于服务器的工具 - 通常不会在 C# 中执行此操作,因为它涉及大量数据,而服务器实用程序更擅长这些数据。

Analytics is a server based tool - you don't normally do it in C# as it involves massive amounts of data, which server utilities are much better at.

箹锭⒈辈孓 2024-10-19 15:49:04

您可以使用 StreamInsight 在您的网站上执行分析。您可以在页面中包含自定义代码,用于向 SI 发送消息,并从您感兴趣的 Web 服务器收集性能计数器。然后,您可以实时分析此信息,以提供对性能和负载的主动监控。
也就是说,StreamInsight 仅用于实时分析。对于长期分析,您需要使用其他工具。

You can use StreamInsight to perform analytics on your web site. You can have custom code in your pages that sends messages to SI as well as collect perfmon counters from the web servers that you are interested in. You could then analyze this information in real time to provide pro-active monitoring of performance and load.
That said, StreamInsight is for real-time analytics only. For long-term analytics, you'd want to utilize another tool.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文