Ответ 1
Это то, что я должен был сделать, чтобы MiniProfiler работал в моем проекте ASP.NET MVC5:
-
Установлены пакеты MiniProfiler и MiniProfiler.MVC4 NuGet (пакет MVC4 поддерживает MVC5)
-
Добавьте следующее в
Application_Start()
в Global.asax:protected void Application_Start() { ... // Setup profiler for Controllers via a Global ActionFilter GlobalFilters.Filters.Add(new ProfilingActionFilter()); // initialize automatic view profiling var copy = ViewEngines.Engines.ToList(); ViewEngines.Engines.Clear(); foreach (var item in copy) { ViewEngines.Engines.Add(new ProfilingViewEngine(item)); } }
-
Добавьте следующее в "Application_BeginRequest()" и "Application_EndRequest()", также в Global.asax:
protected void Application_BeginRequest() { if (Request.IsLocal) { MiniProfiler.Start(); } } protected void Application_EndRequest() { MiniProfiler.Stop(); }
-
Добавьте следующее в _Layout.cshtml(непосредственно перед тегом
</body>
):... @StackExchange.Profiling.MiniProfiler.RenderIncludes() </body> </html>
-
Добавьте следующее в раздел
<handlers>
в 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>
Этого было достаточно для профилирования каждого из действий и представлений контроллера MVC.
В моем конкретном проекте я использовал Entity Framework 6, поэтому я также сделал следующее:
a) Установлен пакет MiniProfiler.EF6
b) Добавлен следующий в конец Application_Start()
в Global.asax:
...
MiniProfilerEF6.Initialize();
}