gpt4 book ai didi

asp.net-mvc - 将 MiniProfiler 与 MVC 5 结合使用

转载 作者:行者123 更新时间:2023-12-02 03:57:31 25 4
gpt4 key购买 nike

编辑得到答案 here

所以我想检查 MiniProfiler 来解决一些性能问题。在将它用于生产代码之前,我想使用示例进行尝试,因此继续创建 MVC 5 应用程序。这是使用模板创建的普通应用程序。

在 HomeController 的 Index() 方法中添加了以下代码:

var profiler = MiniProfiler.Current;
using (profiler.Step("Set page title"))
{
ViewBag.Title = "Home Page";
}
using (profiler.Step("Doing complex stuff"))
{
using (profiler.Step("Step A"))
{ // something more interesting here
Thread.Sleep(100);
}
using (profiler.Step("Step B"))
{ // and here
Thread.Sleep(250);
}
}
return View();

在_Layout中的jquery包下面添加了这一行:

@Scripts.Render("~/bundles/jquery")
@StackExchange.Profiling.MiniProfiler.RenderIncludes()

@Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts", required: false)

运行应用程序。什么也没有出现。没有分析,什么都没有。

我错过了什么?

问候。

最佳答案

为了让 MiniProfiler 在我的 ASP.NET MVC5 项目中工作,我必须这样做:

  1. 已安装 MiniProfilerMiniProfiler.MVC4 NuGet 软件包(MVC4 软件包支持 MVC5)

  2. 将以下内容添加到 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));
    }
    }
  3. 将以下内容添加到同样位于 Global.asax 中的“Application_BeginRequest()”和“Application_EndRequest()”:

    protected void Application_BeginRequest()
    {
    if (Request.IsLocal)
    {
    MiniProfiler.Start();
    }
    }

    protected void Application_EndRequest()
    {
    MiniProfiler.Stop();
    }
  4. 将以下内容添加到 _Layout.cshtml(就在 </body> 标记之前):

        ...
    @StackExchange.Profiling.MiniProfiler.RenderIncludes()
    </body>
    </html>
  5. 将以下内容添加到 <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 Controller 操作和 View 。

<小时/>

在我的特定项目中,我使用的是 Entity Framework 6,因此我还执行了以下操作:

a) 安装了MiniProfiler.EF6

b) 将以下内容添加到 Application_Start() 的末尾在 Global.asax 中:

    ...
MiniProfilerEF6.Initialize();
}

关于asp.net-mvc - 将 MiniProfiler 与 MVC 5 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22727574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com