我在我的asp.net MVC 3应用程序上使用迷你探查器。我使用mvc nuget包实现了探查器。一切都适用于标准页面请求我获取配置文件信息sql一切。
但是最初似乎没有显示ajax请求。只是让我确认请求已经完成而没有错误。我调试了这个,他们完成了他们也在fiddler中返回http 200响应。
小型探查器没有伴随ajax请求的请求。当我然后导航到另一个页面,即标准页面请求时,现在显示在最后一页上进行的所有ajax请求。
这是我在App_Start
中的迷你探查器配置页面public static class MiniProfilerPackage
{
public static void PreStart()
{
//Setup sql formatter
MiniProfiler.Settings.SqlFormatter = new OracleFormatter();
//Make sure the MiniProfiler handles BeginRequest and EndRequest
DynamicModuleUtility.RegisterModule(typeof(MiniProfilerStartupModule));
//Setup profiler for Controllers via a Global ActionFilter
GlobalFilters.Filters.Add(new ProfilingActionFilter());
//Settings
MiniProfiler.Settings.PopupShowTimeWithChildren = true;
MiniProfiler.Settings.PopupShowTrivial = false;
//Ignore glimpse details in miniprofiler
var ignored = MiniProfiler.Settings.IgnoredPaths.ToList();
ignored.Add("Glimpse.axd");
MiniProfiler.Settings.IgnoredPaths = ignored.ToArray();
}
public static void PostStart()
{
// Intercept ViewEngines to profile all partial views and regular views.
// If you prefer to insert your profiling blocks manually you can comment this out
var copy = ViewEngines.Engines.ToList();
ViewEngines.Engines.Clear();
foreach (var item in copy)
{
ViewEngines.Engines.Add(new ProfilingViewEngine(item));
}
}
}
public class MiniProfilerStartupModule : IHttpModule
{
public void Init(HttpApplication context)
{
context.BeginRequest += (sender, e) =>
{
var request = ((HttpApplication)sender).Request;
MiniProfiler.Start();
};
//Profiling abadened if user is not in the admin role
context.PostAuthorizeRequest += (sender, e) =>
{
if (!context.User.IsInRole("Admin"))
MiniProfiler.Stop(discardResults: true);
};
context.EndRequest += (sender, e) =>
{
MiniProfiler.Stop();
};
}
public void Dispose() { }
}
我应该注意哪些配置是必需的或潜在的问题?
答案 0 :(得分:8)
最后,我发现添加到页面的Miniprofiler JavaScript块必须低于页面jquery引用。
我的JavaScript参考都是在页面末尾添加的,以获得最佳实践性能。
但是我在页眉中留下了@ MvcMiniProfiler.MiniProfiler.RenderIncludes()。将它移动到页面底部的jquery脚本ref下面修复了我的问题。
答案 1 :(得分:0)
刚刚发现同样的情况重复,如果
$.ajaxSetup({
global: false
});