Что такое простой способ включения мини-профилировщика только для сеанса?

У меня есть простое приложение для веб-форм, которое использует мастер-страницу.

Я выполнил инструкции о том, как работать с мини-профилографом. Я получаю все данные в порядке. Теперь я не знаю, как включить или выключить его.

Я думал использовать строку запроса и искать ее Application_BeginRequest - если она там просто использует профайлер весь сеанс .... OK-сеанс не загружен на этом этапе и если используется Application_AcquireRequestState и статическая переменная, которую она загружает много раз, и профайлер действительно работает иногда, иногда нет, и я не знаю почему?

Простой способ, который у меня есть сейчас.

protected void Application_BeginRequest(object sender, EventArgs e)
        {
            MiniProfiler profiler = null;

            if (Request.QueryString["p"] != null)
            {

                profiler = MiniProfiler.Start();

                using (profiler.Step("Application_BeginRequest"))
                {
                }
            }


        }

Так что работает нормально, но я должен добавить параметр запроса для каждого запроса. Нехорошо. Я никогда не использовал global.asax , поэтому я не уверен на 100%, как все работает там.

Каков наилучший способ установить переменную для заранее определенного времени, чтобы профайлер всегда загружался, когда я включаю его секретным способом?


Редактирование и решение моей проблемы

 protected void Application_BeginRequest(object sender, EventArgs e)
        {
            MiniProfiler profiler = null;
            if (Request.Cookies["profiler"] != null)
            {
                profiler = MiniProfiler.Start();

                using (profiler.Step("Application_BeginRequest"))
                {
                }
            }

        }
4
nl ja de

1 ответы

Если вы добавили MiniProfiler через пакет MiniProfiler.MVC3, он добавит файл C# для вашего удобства в настройке: посмотрите App_Start \ MiniProfiler.cs , в частности, на Init который имеет код, чтобы решить, следует ли начинать профилирование ( request.IsLocal является значением по умолчанию)

В вашем случае я бы предложил проверить файл cookie в состоянии start и проверить ваш более полный «я разработчик или кто-то, кто слышал о специальном cookie» в конце условие; в частности, если вы вызываете MiniProfiler.Stop (false) , то все данные отбрасываются. Ваше «тайное превращение» и «предварительно определенное время» затем все получается дешево с помощью файла cookie, а «я - разработчик», чтобы убедиться, что его нельзя злоупотреблять, установив cookie.

4
добавлено
Привет-I использовал nuget , и он просто добавил справочную библиотеку. Но я не думал о куках! Да, это сработало, и теперь я могу контролировать это. Спасибо!
добавлено автор ppumkin, источник