- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在我的 asp.net Web API 项目中使用迷你分析器,并希望跟踪在自定义 DelegatingHandler 中运行的某些代码的性能。
电话MiniProfiler.Current.Step()
内DelegatingHandler
不要出现在结果中。同一项目中的其他调用显示正常。
进一步调查发现MiniProfiler.Current
检索自 HttpContext.Current
在 WebRequestProfilerProvider
.和 HttpContext.Current
从 DelegatingHandler
调用时为空.
有没有更好的方法来检索 MiniProfiler.Current 以便它在处理程序中工作?
最佳答案
MiniProfiler 时间存储在 HttpContext.Current
默认情况下(如您所见)。因此,如果您从 HttpContxt.Current
的地方调用 MiniProfiler为空,结果无法保存。解决方案是从其他地方保存(和检索)结果。
MiniProfiler 提供了更改所有结果存储和检索位置的选项(使用 MiniProfiler.Settings.Storage
)。 new v3 MiniProfiler ( beta nuget here ) 提供了配置不同的选项 IStorage
对于每个请求,以及使用 MultiStorageProvider
指定可以存储和检索结果的多个位置。您可以在 Sample.Mvc 中看到这样的示例。 github 上的项目。
在您的情况下,最好的方法可能是设置 MultiStorageProvider
为您的全局MiniProfiler.Settings.Storage
这将首先从 HttpRuntimeCacheStorage
保存/检索然后之后将使用其他一些 IStorage
可从 DelegatingHandler
访问.然后在 DelegatingHandler
,设置 MiniProfiler.Current.Storage
仅使用您在 MultiStorageProvider
中设置的第二个存储选项(因为尝试保存 HttpCache 是没有意义的)。在这里,来自 DelegatingHandler
的配置文件将被保存到您的第二个存储选项中,并将被检索以查看您的其他结果(因为 MultiStorageProvider
将 Load
从它可以获得的第一个结果开始 - 如果它在 HttpCache 中找不到结果,它将转到第二个选项。
注意 - 在这种情况下,具有多个存储选项很有用,但它可能会对检索配置文件的性能产生负面影响。
关于asp.net-web-api - 从 System.Net.Http.DelegatingHandler 调用时 MiniProfiler.Current 为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17488355/
我正在尝试在我的 asp MVC 项目中使用堆栈交换 MiniProfiler,但是在我调用的地方我收到了一条非常烦人的错误消息 @using StackExchange.Profiling 和 @M
尝试加载 miniprofiler 列表时出现“MiniProfiler.list 未定义”错误: /mini-profiler-resources/results-index JavaScript
在 MiniProfiler.MVC3 NuGet 包中,它在 App_Start 中创建一个文件,用于控制 MiniProfiler 设置(要使用的 SqlFormatter、对 ViewEngin
我正在尝试弄清楚如何使用 MiniProfile 查看为什么某些网页运行速度如此之慢。我已经添加了它,并在 Application_BeginRequest、Application_EndReques
我想使用 MiniProfiler 为 Application_OnStart 计时。到目前为止,我一直没有成功。我尝试创建一个 Timing 并将其添加到根的子级,但它没有收集我想要的所有数据。它还
我将 MiniProfiler v3.2.0.157 和 MiniProfiler.EF6 v3.0.11 与 C# 一起用于 ASP.NET MVC 4 网站。虽然我可以让分析器显示在网站的大部分页
我正在使用 MVC Mini 分析器来检查我的应用程序特定部分的速度,并希望将其保留在那里,以防万一以后发生什么事情,我可能需要检查“出了什么问题”。这不是一个完整的日志集,但它可以帮助您了解导致页面
我刚刚创建了一个新的 MVC 4 Basic 项目,并将包添加到项目中,并将所需的代码添加到布局中,但第一次运行后没有任何反应。 这是布局: @using StackExchange.Profilin
Miniprofiler 显示我的页面中最慢的部分是“渲染”步骤(下面附上截图)。 在该渲染步骤中发生了什么?是不是你的.aspx转成html发给客户端的阶段?有什么地方可以添加 Miniprofil
所以我试图将 MiniProfiler ( https://github.com/MiniProfiler/dotnet ) 用于 WebForms 网站。我所做的是: 使用 nuget 安装软件包
我正在运行 umbraco 7 的一个实例。但我似乎无法设置 miniprofiler 来使用它。 在我的 global.asax 上设置: protected void Applicatio
我在让 MiniProfiler 向我显示报告时遇到问题。我只是在开发环境中,应该一直显示它。添加 ?pp=help确实会调出帮助页面。在 tmp/miniprofile 中,有大量的 mp_time
在我的 Controller 操作中,我 included View 所需的所有关联,以避免多次调用数据库。 (我试图隔离 View 层以仅呈现 Controller 收集的数据)。 I'v foun
我正在使用最新版本的 MiniProfiler,一切都已按我的预期设置和工作。我唯一的问题是 SqlParameters 没有显示。 例如,我正在运行一个存储过程:- var cmd = dbcon.
我已经添加了 miniprofiler 并且能够看到所有请求的时间。我可以使用 Miniprofiler 显示跟踪消息(或与此相关的任何其他自定义信息)吗?请帮助的可能性。我在 MVC3 .net C
我在我的项目中集成了 Entity Framework 和 CodeFirstStoredProc 库。我想记录两个库执行的查询。以前我使用的是 EF 提供的 Database.Log 委托(dele
我正在尝试使用 MiniProfiler 来获取这段代码的时间。 var profiler = StackExchange.Profiling.MiniProfiler.Current; 但它在结果中
我已经实现了一个控制台应用程序并向该应用程序添加了 Miniprofiler。 现在我想将 Miniprofiler 数据存储到数据库中。我已经执行脚本来为数据库创建表。你可以找到脚本 here !
所以,在我的 Index.cshtml 页面中,当我最初加载页面时,我有: @inherits ViewPage
我正在研究(WebForms)Web 应用程序的运行时分析工具。 我考虑过 MiniProfiler 和 Glimpse。 在 MiniProfiler 中,记录分析消息很容易(实际上是唯一的方法?)
我是一名优秀的程序员,十分优秀!