2011-01-20 26 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僅用於實時分析。對於長期分析,您需要使用其他工具。