C# 如何向MiniProfiler添加启动计时?
我想使用MiniProfiler启动应用程序。到目前为止,我一直不成功。我试图创建一个计时并将其添加到根的子级,但它没有收集我想要的所有数据。它还将从总配置文件时间中减去启动时间,因此最终的持续时间为负。目前我唯一的解决方案是自己用秒表计时,并将其添加到客户端计时中。这将从第一个请求中删除客户端计时,并添加应用程序启动持续时间。但是我没有获得定制的计时等。另外,由于我使用AddProfilerResults方法将我的API配置文件合并到我的MVC配置文件中(对于MVC UI,它们是分步包装的),第一个MVC请求的API启动时间不包括在内,而且基本上丢失了C# 如何向MiniProfiler添加启动计时?,c#,mvc-mini-profiler,C#,Mvc Mini Profiler,我想使用MiniProfiler启动应用程序。到目前为止,我一直不成功。我试图创建一个计时并将其添加到根的子级,但它没有收集我想要的所有数据。它还将从总配置文件时间中减去启动时间,因此最终的持续时间为负。目前我唯一的解决方案是自己用秒表计时,并将其添加到客户端计时中。这将从第一个请求中删除客户端计时,并添加应用程序启动持续时间。但是我没有获得定制的计时等。另外,由于我使用AddProfilerResults方法将我的API配置文件合并到我的MVC配置文件中(对于MVC UI,它们是分步包装的),
MiniProfiler.Current.ClientTimings = new ClientTimings
{
Timings = new List<ClientTimings.ClientTiming>
{
new ClientTimings.ClientTiming
{
Duration = startTime,
Id = Guid.NewGuid(),
MiniProfilerId = Guid.NewGuid(),
Name = "Application_Start",
Start = 0
}
}
};
MiniProfiler.Current.ClientTimings=新的ClientTimings
{
计时=新列表
{
新建ClientTimings.ClientTiming
{
持续时间=开始时间,
Id=Guid.NewGuid(),
MiniProfilerId=Guid.NewGuid(),
Name=“应用程序启动”,
开始=0
}
}
};
我们在这里处理堆栈溢出的方法是在startup方法中创建一个MiniProfiler
,向其添加步骤,然后将其呈现为静态字符串:
public static string ApplicationStartTimings { get; private set; }
protected void Application_Start(object sender, EventArgs e)
{
// init MiniProfiler.Settings here
// ...
var prof = new MiniProfiler("Application_Start");
using (prof.Step("Register routes"))
{
RegisterRoutes(RouteTable.Routes);
}
// ... more config and steps
try
{
ApplicationStartTimings = prof.Render().ToString();
}
catch { }
}
然后,您可以有一个路线来显示这些计时。这很有意思,但能完成任务
编辑-我在此工作中添加了一个;以下是主索引页上的输出:
怎么做?这会失败,因为没有HTTPCONTEXT,所以当您尝试使用httpruntimecache时,它会立即消失。应用程序爆炸起火。您没有运行集成模式吗?用于缓存的属性是静态的,所以我不想疯狂地交换它。另外,您没有对如何将其添加到每页探查器发表评论。我已经用一些工作代码更新了我的答案。至于你的爆炸案,你能把你用的密码贴出来吗?我很确定
MiniProfiler
构造和.Step()
不应该涉及HttpContext
上的任何内容,但我可能错了(自从上次查看以来,项目已经发生了很大变化).对于如何将这些启动计时纳入所有页面的/ajax请求计时,我没有什么好的建议-因为它们只运行一次,所以我们只有一个显示它们的路径。您可以在探查器的页脚中添加一个链接到此路由,甚至链接的文本也可能具有总持续时间,例如[启动(100ms)]好的。酷。我想我可以接受这个。我在问如何从应用程序开始向请求添加配置文件,以便您可以一起查看它们。这不会捕获我想要的所有内容,因为它的内部步骤将访问行中的MiniProfiler.Current.Step(“”)。那东西丢了。一切都失去了。但是,我想这是我得到的最好的了。