MiniProfiler工具介绍

2019-09-20 00:12栏目:澳门萄京官网
TAG:

    MiniProfiler是一款针对.NET, Ruby, Go and Node.js的性质剖析的轻量级程序。能够对二个页面自身,及该页面通过直接引用、Ajax、Iframe情势探望的其他页面实行监察,监控内容囊括数据库内容,并能够显得数据库访谈的SQL(协助EF、EF CodeFirst等 )。并且以很谈得来的方法表今后页面上。

    MiniProfiler官网:

    MiniProfiler的一个特意实用的效果是它与数据库框架的融会。除了.NET原生的 DbConnection类,迷你Profiler还内置了对实体框架(Entity Framework)以及LINQ to SQL、RavenDb和MongoDB的支撑。任何奉行的Step都会席卷当时询问的次数和所费用的小时。为了检查测验常见的谬误,如N+1反格局,profiler将检验只有参数值存在差其余八个查询。

    MiniProfiler是以Apache License V2.0商业事务宣布的,你能够在NuGet找到。

  过去直接使用Sqlserver Profiler,可是开掘实际上是太伤心了,你不得不举行新建、过滤、清除、关闭等操作,何况过滤筛选往往相比麻烦决定。后来意识MiniProfiler工具十二分好用。

  同类监察和控制工具备NanoProfiler,下载地址:https://github.com/ef-labs/nanoprofiler/issues/1

Demo演示

德姆o开辟境况

  • Win10
  • VS2013

企图干活

新建MVC项目WebAppEF,使用Northwind数据库。

1、先安装MiniProfiler

澳门萄京官网 1

2、安装MiniProfiler.MVC4

澳门萄京官网 2

3、安装MiniProfiler.EF

澳门萄京官网 3

4、修改Global.asax文件

自个儿这边只供给在开荒意况使用SQL品质监察和控制,所以使用了#if DEBUG,因为生产情状,我们一般是应用release方式。同时,迷你Profiler还协助授权,这里不做牵线。

using StackExchange.Profiling;
using StackExchange.Profiling.EntityFramework6;
using System;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;

namespace WebAppEF
{
publicclassMvcApplication : System.Web.HttpApplication
    {
protectedvoid Application_Start()
        {
#if DEBUG
MiniProfilerEF6.Initialize();
#endif
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
        }
protectedvoid Application_BeginRequest(Object source, EventArgs e)
        {
#if DEBUG
MiniProfiler.Start();
#endif
        }
protectedvoid Application_EndRequest()
        {
#if DEBUG
MiniProfiler.Stop();
#endif
        }
    }
}

5、在你的布局页(_Layout)中,比方以下这种布局,修改_Layout.cshtml

@using StackExchange.Profiling;
<head>
 ..
</head>
<body>
  ...
  @MiniProfiler.RenderIncludes()
</body>

6、修改配置文件Web.config

<system.webServer>
<handlers>
<add name="MiniProfiler" path="mini-profiler-resources/*" verb="*" type="System.Web.Routing.UrlRoutingModule" resourceType="Unspecified" preCondition="integratedMode"/>
</handlers>
</system.webServer>

澳门萄京官网 4

7、添加控制器测试代码

        public ActionResult Index()
        {
            // create the entity object
            using (NorthwindEntities mobjentity = new NorthwindEntities())
            {
                ViewBag.SelectCustomer = mobjentity.Customers.Select(x => x.City == "Delhi").ToList();
            }

            var profiler = MiniProfiler.Current;
            using (profiler.Step("查询Customers的数据"))
            {
                using (NorthwindEntities entity = new NorthwindEntities())
                {
                    ViewBag.data = entity.Customers.ToList();
                }
            }
            return View();
        }

8、按F5调试运行

澳门萄京官网 5澳门萄京官网 6澳门萄京官网 7

说明:标记为duplicate的部分,代表在一次请求当中,重复执行了查询,可以进行优化。通过Step可以对独立的sql块进行标记。

普及错误

1、The Entity Framework was already using a DbConfiguration instance before an attempt was made to add an 'Loaded' event handler. 'Loaded' event handlers can only be added as part of application start up before the Entity Framework is used. See for more information.

澳门萄京官网 8

分析:错误提醒的大意是在盘算为DbConfiguration 实例加Loaded事件在此之前以往在别的地方选择了那些实例了

焚薮而田方案:把MiniProfiler.EF6.Initialize()在位于Database.SetInitializer<WebAppEF.Models.NorthwindEntities>(null); 从前。

2、Could not load file or assembly 'MiniProfiler, Version=3.0.11.0, Culture=neutral, PublicKeyToken=b44f9351044011a3' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

澳门萄京官网 9

深入分析:找不到MiniProfiler程序集或然它的依据项。程序集定义和援用不包容。

技术方案:查看Web.config中是不是留存如下配置节点

<dependentAssembly>
<assemblyIdentityname="MiniProfiler"publicKeyToken="b44f9351044011a3"culture="neutral" />
<bindingRedirectoldVersion="0.0.0.0-3.2.0.157"newVersion="3.2.0.157" />
</dependentAssembly>

澳门萄京官网,如若不设有则增加,即使存在,则检查MiniProfiler版本号和packages.config中的版本号是或不是一律,即使不均等就要对版本号实行改变。

参考:

行使MiniProfiler调节和测量检验ASP.NET MVC网址质量

利用MiniProfiler监察和控制EF与.NET MVC项目(Entity Framework 延伸系列1)

版权声明:本文由澳门萄京官网最大平台发布于澳门萄京官网,转载请注明出处:MiniProfiler工具介绍