查看: 1978|回复: 0

[.NET开发] ASP.NET MVC5使用MiniProfiler监控MVC性能

发表于 2018-1-2 08:00:00

MiniProfiler ,一个简单而有效的迷你剖析器,可以有效的实时监控页面。通过直接引用、Ajax、Iframe形式访问的其它页面进行监控,监控内容包括数据库内容,并可以显示数据库访问的SQL。

1.安装

首先新建一个 asp.net mvc 项目

右键项目,管理NuGet程序包。 安装 MiniProfiler.Mvc4和MiniProfiler

ps:MiniProfiler.MVC4的NuGet包(该MVC4包支持MVC5)

或者也可以打开程序包管理控制台 输入命令进行安装

Install-Package MiniProfiler -Version 3.2.0.157

Install-Package MiniProfiler.Mvc4 -Version 3.0.11

2.将以下内容添加到Application_Start()Global.asax中

  1. protected void Application_Start()
  2. {
  3. ...
  4. GlobalFilters.Filters.Add(new ProfilingActionFilter());
  5. var copy = ViewEngines.Engines.ToList();
  6. ViewEngines.Engines.Clear();
  7. foreach (var item in copy)
  8. {
  9. ViewEngines.Engines.Add(new ProfilingViewEngine(item));
  10. }
  11. }
复制代码

3.将以下内容添加到“Application_BeginRequest()”和“Application_EndRequest()”,也在Global.asax中

  1. protected void Application_BeginRequest()
  2. {
  3. if (Request.IsLocal)
  4. {
  5. MiniProfiler.Start();
  6. }
  7. }
  8. protected void Application_EndRequest()
  9. {
  10. MiniProfiler.Stop();
  11. }
复制代码

4.将以下内容添加到_Layout.cshtml(就在标签之前):

  1. @StackExchange.Profiling.MiniProfiler.RenderIncludes()
  2. </body>
  3. </html>
复制代码

5.将以下内容添加到Web.config 的部分中

  1. <system.webServer>
  2. ...
  3. <handlers>
  4. ...
  5. <add name="MiniProfiler" path="mini-profiler-resources/*" verb="*"
  6. type="System.Web.Routing.UrlRoutingModule" resourceType="Unspecified"
  7. preCondition="integratedMode" />
  8. ...
  9. </handlers>
  10. </system.webServer>
复制代码

如果你在项目中使用了Entity Framework ,那么你可以安装MiniProfiler.EF6软件包,在Application_Start()在Global.asax 结尾添加了以下内容: MiniProfilerEF6.Initialize();

一个简单的对MVC性能的监控就这样了,其实他还有很多功能,比如说能够通过不同的参数检测并突出显示执行相同查询的区域。这样您就可以快速找到可能批量的查询。

还可以记录所有的ajax的调用,查看最近100个分析请求的分析信息等。

结果展示:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持程序员之家。



回复

使用道具 举报