迷你探查器不显示ajax请求信息?

时间:2011-11-24 10:11:48

标签: asp.net-mvc mvc-mini-profiler

我在我的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() { }
    }

我应该注意哪些配置是必需的或潜在的问题?

2 个答案:

答案 0 :(得分:8)

最后,我发现添加到页面的Miniprofiler JavaScript块必须低于页面jquery引用。

我的JavaScript参考都是在页面末尾添加的,以获得最佳实践性能。

但是我在页眉中留下了@ MvcMiniProfiler.MiniProfiler.RenderIncludes()。将它移动到页面底部的jquery脚本ref下面修复了我的问题。

答案 1 :(得分:0)

刚刚发现同样的情况重复,如果

$.ajaxSetup({
    global: false
});