2011-01-20 58 views
5

我正在使用Microsoft企业库日志记录在c#中记录SQL DB中的事件,并将此记录用于分析目的。分析#

有什么更好的方式在c#中进行分析。例如“来自SQL Server 2008的Microsoft StreamInsight”。

另一种方法是将Javascript嵌入到谷歌分析正在使用的HTML代码中。但通过这种方式,我应该将所有日志数据发送到HTTP POST中的日志服务器。

感谢

+0

如果你想跟踪桌面软件,你可以尝试http://www.trackerbird.com – Dive50 2013-07-24 15:32:40

回答

2

有一件事我觉得有趣的是,如果你想跟踪自己的用户是实施行动的过滤器。

如果您使用的是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); 
    } 
} 
0

Analytics(分析)是一种基于服务器的工具 - 你通常不会做它在C#中,因为它涉及到大量的数据,这些服务器公用事业在更好。

0

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