【问题标题】:In ASP.NET MVC 3, How can I use OnResultExecuting/OnresultExecuted method to trace the page load time?在 ASP.NET MVC 3 中,如何使用 OnResultExecuting/OnresultExecuted 方法来跟踪页面加载时间?
【发布时间】:2012-07-18 12:28:35
【问题描述】:

我将 OnResultExecuting/OnResultExecuted 代码放在我的控制器中,并在 web.config 中启用了跟踪,但在控制器的任何页面上都没有显示任何关于跟踪信息的信息(我刚得到原始页面,附加 trace.axd 没有也可以工作!)

启用跟踪的 web.config:

<system.web><trace enabled="true" pageOutput="true" requestLimit="40" localOnly="false"/></system.web>

OnResultExecuting/OnResultExecuted:

protected override void OnResultExecuting(ResultExecutingContext filterContext)
    {
        string controller = filterContext.RouteData.Values["controller"].ToString();
        string action = filterContext.RouteData.Values["action"].ToString();
        start_time = DateTime.Now;
        System.Diagnostics.Trace.Write(string.Format("Start '{0}/{1}' on: {2}", controller, action, start_time));
    }

    protected override void OnResultExecuted(ResultExecutedContext filterContext)
    {
        string controller = filterContext.RouteData.Values["controller"].ToString();
        string action = filterContext.RouteData.Values["action"].ToString();
        var elapsed_time = DateTime.Now - start_time;
        System.Diagnostics.Trace.Write(string.Format("Start '{0}/{1}' on: {2}", controller, action, elapsed_time));
    }

【问题讨论】:

    标签: asp.net-mvc-3


    【解决方案1】:

    改为制作一个动作过滤器。我在here 上粘贴了一些代码。

    ActionFilter 更容易重用,并且可以全局实施。

    【讨论】:

      【解决方案2】:

      你知道 mvc mini profiler - http://code.google.com/p/mvc-mini-profiler/

      它是由开发这个网站的 sam saffron 编写的。

      听起来它可能已经完成了您想要实现的目标

      【讨论】:

        猜你喜欢
        • 2016-04-04
        • 1970-01-01
        • 1970-01-01
        • 2012-12-31
        • 1970-01-01
        • 2014-11-28
        • 1970-01-01
        • 1970-01-01
        • 2018-02-07
        相关资源
        最近更新 更多