gpt4 book ai didi

c# - 如何使用控制台应用程序存储 MIniProfiler 数据

转载 作者:太空狗 更新时间:2023-10-29 23:22:33 27 4
gpt4 key购买 nike

我已经实现了一个控制台应用程序并向该应用程序添加了 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com