MiniProfiler не отображается

Я использую MiniProfiler v3.2.0.157 и MiniProfiler.EF6 v3.0.11 с C # для веб-сайта ASP.NET MVC 4. Хотя я могу заставить профилировщик отображаться на большинстве страниц сайта, он не отображается на целевой странице.

Я пробовал все, что предложено здесь: MiniProfiler не отображается на asp.net MVC и здесь: Использование MiniProfiler с MVC 5 без успех.

Обновление: я также попробовал описанную здесь технику кэширования пончиков: Кэширование отверстий пончика - исключить MiniProfiler.RenderIncludes

Я заметил, что для страниц, которые действительно работают, если есть точка останова в Application_BeginRequest прямо на MiniProfiler.Start(), MiniProfiler.Current имеет значение для запросов для большинства наших страниц, но в случае запроса нашей целевой страницы оно равно null. в этот момент. В целевой странице нет ничего особенного, что могло бы вызвать проблемы.

Важные части моего кода показаны ниже.

Global.asax.cs:

protected void Application_BeginRequest(Object sender, EventArgs e)
    {
        if (Request.IsLocal)
        {
            MiniProfiler.Start();
        }


    }

protected void Application_EndRequest()
    {             

        MiniProfiler.Stop(discardResults: false);

    }

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>

Страница макета:

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

Контроллер целевой страницы:

using StackExchange.Profiling;
...
public ActionResult Landing()
    {
        var profiler = MiniProfiler.Current;

        using (profiler.Step("Content Controller Landing"))
        {
            var user = ...;
            return View(...);
        }

    }

person tstuart    schedule 01.06.2016    source источник
comment
Что ж, это весело. Если вы выберете точку останова на MiniProfiler.Start (), попадется ли она для этих страниц? Возможно ли, что это вещь [OutputCache]?   -  person Marc Gravell    schedule 02.06.2016
comment
Отвечаю, потому что я в одной команде - да, он попадает в MiniProfiler.Start () во всех случаях, но сразу после этого, только для этой одной страницы, MiniProfiler.Current по-прежнему равен нулю. Я посмотрю на [OutputCache], понятия не имею   -  person jackmott    schedule 02.06.2016
comment
@MarcGravell Я не думаю, что это конкретно [OutputCache], потому что мы не вызываем его ни для одной из функций, связанных с целевой страницей. Проблема, однако, звучит так, как будто это может быть что-то похожее на это.   -  person tstuart    schedule 02.06.2016


Ответы (1)


Вот мой ответ MiniProfiler не отображается на asp.net MVC

Заключение, убедитесь, что вы добавили код в Application_Start ()

protected void Application_Start()
{
    ...
    MiniProfiler.Configure(new MiniProfilerOptions());//default setting
    MiniProfilerEF6.Initialize();
}

См. Официальный документ: https://miniprofiler.com/dotnet/AspDotNet

person Jim.Carter    schedule 18.06.2019