定时ASP.NET MVC操作

时间:2009-04-05 07:00:16

标签: asp.net-mvc

我想尝试计算ASP.NET MVC ActionMethod。

我在想一个很好的方法就是使用自定义标题。

我可以使用ActionFilterAttribute来执行此操作吗? 有没有人这样做过,或者是否有任何ASP.NET功能的构建来做到这一点?

我刚被赶出星巴克并希望有人在我回家之前得到答案。通常有人这样做: - )

3 个答案:

答案 0 :(得分:3)

您可以尝试Eqatec profiler。它是免费的:)

答案 1 :(得分:3)

我同意asp.net跟踪最适合这份工作。但使用ActionFilter应该很有趣。

此代码未经测试。

public class TimingAttribute : ActionFilterAttribute
{
    Stopwatch stopwatch;

    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        stopwatch = new Stopwatch();
        stopwatch.Start();
        base.OnActionExecuting(filterContext);
    }

    public override void OnResultExecuted(ResultExecutedContext filterContext)
    {
        try
        {
            base.OnResultExecuted(filterContext);
        }
        finally
        {
            stopwatch.Stop();
            var ms = stopwatch.ElapsedMilliseconds;
            // your logging here. controller/action/request info could be extracted from filterContext
        }
    }
}

答案 2 :(得分:0)

我同意Cherian的观点,追踪是最好的选择,因为它应该是最准确的。

我认为如果我能猜出你的想法是什么属性选项,我必须假设你会使用反射来排序动态启动和停止方法执行时的方法。我觉得这很酷,但它可能会增加开销给出错误的读数。