Я использую профилировщик MVC Mini для проверки скорости определенных частей моего приложения и хотел бы сохранить ее там на случай, если что-то случится позже, и мне может понадобиться проверить «что происходит не так». Это не полный набор журналов, но очень полезно знать, что заставляет страницу занимать много времени.
Итак, моя цель - скрыть это и сделать его профилированным только тогда, когда запрос приходит с определенным параметром. Однако ни одна из моих попыток не сработала так, как я ожидал.
Это позволило избежать его отображения на экране (код в виде):
@if (Request.QueryString.AllKeys.Contains("showProfiler"))
{
@MvcMiniProfiler.MiniProfiler.RenderIncludes()
}
Это попытка, которая стала ближе. Правильно скрывает информацию о мини-профилировщике, но в тот момент, когда я ее показываю, все профилируется, так как я перестал ее показывать. Итак, допустим, что я профилирую свою страницу, и это занимает 3 секунды. Я удаляю параметр запроса и загружаю страницу еще три раза. Я снова добавляю свой параметр и вижу 4 набора информации профиля. Это означает, что он отслеживает все, и мне интересно, может ли это привести к проблемам с памятью.
Попытки сделать так, чтобы этого больше не происходило:
Попытка 1:
protected void Application_BeginRequest()
{
if (Request.QueryString.AllKeys.Contains("showProfiler"))
{
MiniProfiler.Start();
}
}
Попытка 2:
protected void Application_EndRequest()
{
MiniProfiler.Stop(!Request.QueryString.AllKeys.Contains("showProfiler"));
}
Попытка 3:
protected void Application_EndRequest()
{
MiniProfiler.Stop(true);
}
Ничего из этого не сработало. Есть идеи?