Я использую профилировщик 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);
}
Ничего из этого не сработало. Есть идеи?