4

マスターページを使用する単純なWebフォームアプリケーションがあります。

ミニプロファイラーを機能させる方法の指示に従いました。私はすべての統計をOKにします。今、私はそれをオンまたはオフに切り替える方法を本当に知りません。

クエリ文字列を使用してそれを探すことを考えました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

1 に答える 1

4

MiniProfiler.MVC3パッケージを介してMiniProfilerを追加した場合は、構成に便利なC#ファイルが追加されます。App_Start\MiniProfiler.cs特に、Initプロファイリングを開始するかどうかを決定するコードが含まれているファイルを確認してください(request.IsLocalデフォルト)

あなたの場合、開始条件でCookieをチェックし、終了条件でより完全な「私は開発者であるか、特別なCookieについて聞いた人であるか」を確認することをお勧めします。特に、を呼び出すMiniProfiler.Stop(false)と、すべてのデータが破棄されます。「秘密の方法でオンにする」と「事前に定義された時間」はすべてCookieを介して安価に実現され、Cookieを設定するだけで悪用されないように「私は開発者です」があります。

于 2013-02-07T12:14:06.150 に答える