Мини-профилировщик не отображает информацию о запросе ajax?

Я использую мини-профилировщик в своем приложении asp.net MVC 3. Я реализовал профилировщик с помощью пакета mvc nuget. Все работает нормально для стандартных запросов страниц, я получаю информацию о профиле sql все.

Однако запросы ajax изначально не отображаются. Просто позвольте мне подтвердить, что запрос выполнен без ошибок. Я отладил это, и они завершают, они также возвращают ответы 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() { }
    }

Требуется ли какая-либо конфигурация или потенциальные проблемы, о которых мне следует знать?


person Richard Forrest    schedule 24.11.2011    source источник


Ответы (2)


В конце концов я понял, что блок JavaScript Miniprofiler, который добавляется на страницу, должен быть ниже ссылки jquery страницы.

Все мои ссылки на JavaScript добавлены в конце страницы из соображений лучшей производительности.

Но я оставил @MvcMiniProfiler.MiniProfiler.RenderIncludes() в заголовке страницы. Перемещение его ниже ссылки на скрипт jquery внизу страницы устранило мою проблему.

person Richard Forrest    schedule 28.11.2011
comment
На самом деле это сработало для меня, если я поместил рендеринг минипрофилера ВЫШЕ всех моих тегов javascript (включая jquery). Странно да? - person Kat Lim Ruiz; 17.09.2014
comment
@KatLimRuiz Я думаю, что теперь они могут упаковать версию jquery с помощью miniprofiler. - person Richard Forrest; 18.09.2014

Только что узнал, что такая же ситуация повторяется, если

$.ajaxSetup({
    global: false
});
person Denis Elkhov    schedule 28.10.2012