我正在使用MiniProfiler来配置我的MVC应用程序和WCF服务,这有点像一个警告 - 当个人资料信息包含sql时。
症状:
经过一番挖掘,我发现这与json响应中的 HasSqlTimings 有关,json响应的根目录中的HasSqlTimings(false)与其中的信息之间存在不一致。 Root / Children层次结构(true)。
[OnDeserialized]
void OnDeserialized(StreamingContext ctx)
{
HasSqlTimings = GetTimingHierarchy().Any(t => t.HasSqlTimings);
HasDuplicateSqlTimings = GetTimingHierarchy().Any(t => t.HasDuplicateSqlTimings);
if (_root != null)
{
_root.RebuildParentTimings();
}
}
我看了一下源代码,它看起来应该可以正常工作但没有交易!有谁知道我可能会出错?
答案 0 :(得分:0)
实施时我遇到了同样的问题。当UI层不进行任何sql调用但随后WCF数据返回sql调用时,会出现此问题。根时间不知道层次结构中有下面的SQL时序。
我添加了一行,以便在添加“远程”时序时,我们设置“hasSqlTimings”字段,以便UI知道如何正确渲染框。这是我在MvcMiniProfiler \ MiniProfiler.cs中修改的代码:
/// <summary>
/// Adds <paramref name="externalProfiler"/>'s <see cref="Timing"/> hierarchy to this profiler's current Timing step,
/// allowing other threads, remote calls, etc. to be profiled and joined into this profiling session.
/// </summary>
public static void AddProfilerResults(this MiniProfiler profiler, MiniProfiler externalProfiler)
{
if (profiler == null || externalProfiler == null) return;
profiler.Head.AddChild(externalProfiler.Root);
profiler.HasSqlTimings = profiler.GetTimingHierarchy().Any(t => t.HasSqlTimings);
}