我已经实现了一个控制台应用程序,并向该应用程序添加了Miniprofiler。

现在,我想将Miniprofiler数据存储到数据库中。我已经执行了脚本来创建数据库表。您可以找到脚本here!

我已审核this的答案

但是,如何将探查器值存储到相关表中?

在MVC中,以下行用于存储值:

MiniProfiler.Settings.Storage = new SqlServerStorage("<your connection string>");

如何从控制台应用程序存储这些值?

最佳答案

上面的程序可以正常工作,并将所需的数据记录到MiniProfilersMiniProfilerTimings表中。设置代码中的关键位是:

  • 指定存储提供程序(您已经拥有了)
  • 指定分析器提供程序(在我的情况下为单个)
  • 在工作
  • 周围启动/停止探查器
  • 工作后保存分析器

  • 代码:
    using StackExchange.Profiling;
    using StackExchange.Profiling.Storage;
    using System;
    using System.Threading;
    //using StackExchange.Profiling.Helpers.Dapper; // only for table creation
    //using System.Data.SqlClient; // only for table creation
    
    static class Program
    {
        static void Main()
        {
            const string ConnectionString = "Initial Catalog=MiniProf;Data Source=.;Integrated Security=true;";
    
            //using(var conn = new SqlConnection(ConnectionString))
            //{
            //    conn.Open();
            //    conn.Execute(SqlServerStorage.TableCreationScript);
            //}
            MiniProfiler.Settings.Storage = new SqlServerStorage(ConnectionString);
            MiniProfiler.Settings.ProfilerProvider = new SingletonProfilerProvider();
            MiniProfiler.Settings.ProfilerProvider.Start(ProfileLevel.Info);
            DoStuff();
            MiniProfiler.Settings.ProfilerProvider.Stop(false);
    
            MiniProfiler.Settings.Storage.Save(MiniProfiler.Current);
        }
        static void DoStuff()
        {
            using (MiniProfiler.Current.Step("DoStuff"))
            {
                for (int i = 0; i < 5; i++)
                {
                    using (MiniProfiler.Current.Step("Loop iteration"))
                    {
                        Thread.Sleep(200);
                        Console.Write(".");
                    }
                }
            }
            Console.WriteLine();
        }
    }
    

    关于c# - 如何使用控制台应用程序存储MIniProfiler数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25637963/

    10-12 12:37
    查看更多