MiniProfiler工具的安装与配置

作为一名Web开发者,经常需要使用各种工具来提高开发效率和应用性能。今天,将介绍一款在日常工作中发现非常有价值的工具——MiniProfiler。MiniProfiler是由StackExchange网站群创建并使用的一款工具,它用于分析.NET和Ruby应用程序的性能。

在开发环境中,MiniProfiler可以提供一个页面覆盖层,详细显示应用程序的代码执行情况。对于试图识别应用程序瓶颈的开发者来说,这无疑是一个极其有用的功能。下面是一个来自Jamb博客页面的截图示例,展示了页面渲染所需的步骤,以及在此过程中执行的SQL语句。

在后续的文章中,将更深入地探讨这些功能。现在,让看看如何将MiniProfiler配置到使用Entity Framework 5进行数据库连接的.NET4.5 MVC 4应用程序中。

安装

安装过程非常简单,可以通过Visual Studio内置的包管理器控制台完成。

打开包管理器控制台(工具-> 库包管理器 -> 包管理器控制台),然后输入以下命令:

Install-Package MiniProfiler

包管理器将下载并安装MiniProfiler,并为项目添加所需的引用。

如前所述,将配置MiniProfiler以分析Entity Framework数据库上下文。为此,还需要安装MiniProfiler.EF包,安装方式与MiniProfiler相同:

Install-Package MiniProfiler.EF

接下来,打开Global.asax.vb文件,在Application_Start子程序的顶部添加以下代码:

MiniProfilerEF.Initialize_EF42()

这确保了Entity Framework创建和使用的任何连接都被MiniProfiler捕获并记录。

在同一文件中,在Application_BeginRequest的顶部添加:

MiniProfiler.Start()

在Application_EndRequest的顶部添加:

MiniProfiler.Stop()

现在,需要在希望显示分析器的页面上添加一段代码。个人将这段代码添加到Base.Master中,这是所有其他页面的父级母版页,这样它就可以在每个页面上使用了。需要在标签中添加的代码如下:

<%:MiniProfiler.RenderIncludes %>

可能需要在页面顶部添加一个命名空间引用,如下所示:

<%@ Import Namespace="StackExchange.Profiling" %>

就是这样!值得注意的是,如果没有调用MiniProfiler.Start(),RenderIncludes函数足够智能,不会在浏览器中添加所需的JavaScript文件。个人将.Start()包装在一个Debugger.IsAttached语句中,因此只在本地开发环境中显示分析器。

运行应用程序,看看会发生什么……

“哦,等等,卡尔,撒谎了——它不起作用,在运行MVC4时遇到了以下错误。”

Failed to load resource: the server responded with a status of 404 (Not Found) http://*/mini-profiler-resources/results

如果没有至少解决一个烦恼,这篇文章就不会有趣,对吧?要修复上述错误,需要将以下内容添加到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>
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485