asp.net-mvc – 测量时间调用ASP.NET MVC控制器操作
发布时间:2020-05-22 23:54:29 所属栏目:asp.Net 来源:互联网
导读:一些MVC 4应用程序的用户正在经历零星的缓慢.大概不是每个用户每次发生这种情况都会报告这个问题. 我的想法是测量每个控制器操作中花费的时间,并记录超过规定时间的操作调用详细信息,以便于进一步分析(统治或排除服务器/代码问题). 有没有方便的方法来进行这
|
一些MVC 4应用程序的用户正在经历零星的缓慢.大概不是每个用户每次发生这种情况都会报告这个问题. 我的想法是测量每个控制器操作中花费的时间,并记录超过规定时间的操作调用详细信息,以便于进一步分析(统治或排除服务器/代码问题). 有没有方便的方法来进行这样的测量,以便我可以避免在每个操作中添加仪器代码?我目前没有使用IOC进行这个项目,并会毫不犹豫地介绍它来解决这个问题. 有更好的方法来解决这种类型的问题吗? 解决方法你能创建一个全局的动作过滤器吗?这样的事情public class PerformanceTestFilter : IActionFilter
{
private Stopwatch stopWatch = new Stopwatch();
public void OnActionExecuting(ActionExecutingContext filterContext)
{
stopWatch.Reset();
stopWatch.Start();
}
public void OnActionExecuted(ActionExecutedContext filterContext)
{
stopWatch.Stop();
var executionTime = stopWatch.ElapsedMilliseconds;
// Do something with the executionTime
}
}
然后将其添加到“Application_Start()”中的GlobalFilters集合中 GlobalFilters.Filters.Add(new PerformanceTestFilter()); 您可以从filterContext参数获取有关正在测试的控制器的详细信息. UPDATE 直接将过滤器添加到GlobalFilters集合将为所有操作创建一个过滤器的单个实例.这当然不会用于定时并发请求.要为每个操作创建一个新的实例,请创建一个过滤器提供程序: public class PerformanceTestFilterProvider : IFilterProvider
{
public IEnumerable<Filter> GetFilters(ControllerContext controllerContext,ActionDescriptor actionDescriptor)
{
return new[] {new Filter(new PerformanceTestFilter(),FilterScope.Global,0)};
}
}
而不是直接添加过滤器,而是在Application_Start()中添加过滤器提供程序: FilterProviders.Providers.Add(new PerformanceTestFilterProvider()); (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 为什么我得到一个“无法更新EntitySet,因为
- asp.net-mvc – ELMAH没有记录违规代码行号
- 为什么ASP.NET身份中的Logout使用POST而不是GET?
- ASP.NET MVC 3助手中的Tab命令
- asp.net-mvc – 为什么Nant不与TeamCity合作?
- asp.net-mvc-3 – 使用Ninject 2.2全局动作过滤器的MVC 3依
- asp.net-core – 如何在部署插槽交换后优雅地迁移打开的Web
- 在ASP.NET中禁用JavaScript时检测
- 在Asp.Net Membership中手动更改用户名
- asp.net-web-api – 仅在第一个Web请求(WebAPI 2,OWIN 3,Ni
推荐文章
站长推荐
- asp.net-mvc-3 – 使用Razor视图抛出有关DotNetO
- asp.net-mvc – 如何为每个ActionLink指定默认区
- asp.net-mvc – ASP.NET MVC Beta 1:DefaultMod
- ASP.NET Identity会话cookie的安全性如何?
- 当空的asp.net时,ListView LayoutTemplate不显示
- asp.net-mvc – 在PasswordSignInAsync成功后,Us
- asp.net – 为应用程序池“Classic .NET AppPool
- asp.net-mvc – 如何在ASP.NET MVC中实现分页?
- asp.net – Linq-to-SQL和DateTime的奇怪
- asp.net-mvc – 升级到Visual Studio 2015会使in
热点阅读
