asp.net-mvc – 使用MiniProfiler与MVC 5

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – 使用MiniProfiler与MVC 5前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
编辑
得到答案 here

所以我想查看MiniProfiler来解决一些性能问题.
在将其用于生产代码之前,我想使用一个示例来尝试,因此创建了一个MVC 5应用程序.这是使用模板创建的简单的vanilla应用程序.

在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 bundle下面添加了这一行:

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

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

把应用程序
没有什么出现没有档案,没有.

我失踪了什么

问候.

解决方法

这是我必须做的,以使MiniProfiler在我的ASP.NET MVC5项目中工作:

>安装MiniProfiler和MiniProfiler.MVC4 NuGet软件包(MVC4软件包支持MVC5)
>在Global.asax中的Application_Start()中添加以下内容

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)在Global.asax中的Application_Start()结尾添加了以下内容

...
    MiniProfilerEF6.Initialize();
}

猜你在找的asp.Net相关文章