[英]How to calculate all action running time in asp.net mvc5 with custom action filter?
我想在asp.net mvc5中记录几乎所有动作的执行时间,但是基本上使用下面的代码执行此操作是正确的方法,否则会使项目非常缓慢? 有什么建议吗?
Stopwatch sw = new Stopwatch();
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
sw.Start();
base.OnActionExecuting(filterContext);
}
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
sw.Stop();
float f = sw.ElapsedMilliseconds;
base.OnActionExecuted(filterContext);
}
我可能会根据请求将时间存储在适当范围内的位置。
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
filterContext.HttpContext.Items["timer"] = Stopwatch.StartNew();
base.OnActionExecuting(filterContext);
}
这样,您就可以避免使用繁琐的字典,并且您的计时器基于per request
。
然后可以在OnActionExecuted
中OnActionExecuted
值
var sw = filterContext.HttpContext.Items["timer"] as Stopwatch;
sw.ElapsedMilliseconds...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.