Запрос Asp.net MVC MiniProfiler недоступен в этом контексте

Я пытаюсь использовать MiniProfiler для своего приложения MVC, которое использует Oracle DB. Вот мой global.asax.

protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();    
        WebApiConfig.Register(GlobalConfiguration.Configuration);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);            
         MiniProfiler.Start(); //or any number of other checks, up to you 

    }
    protected void Application_PreRequestHandlerExecute(object sender, EventArgs e)
    {
        DevExpressHelper.Theme = "Metropolis";
        MiniProfiler.Stop(); //stop as early as you can, even earlier with MvcMiniProfiler.MiniProfiler.Stop(discardResults: true);

    }

Когда приложение запускается, я получаю:

«Запрос недоступен в этом контексте»


person umki    schedule 06.05.2014    source источник


Ответы (1)


Вы получаете эту ошибку, потому что запускаете MiniProfiler.Start() не в том месте. Вам нужно запустить MiniProfiler.Start() как часть Application_BeginRequest. Переместите его в эту функцию, и она должна работать.

Когда вы запускаете его как часть Application_Start, он терпит неудачу, потому что пытается получить доступ к HttpContext.Current, который недоступен в Application_Start.

В контексте MiniProfiler Application_Start - хорошее место для выполнения любых глобальных MiniProfiler.Setting настроек, которые вы хотели бы иметь для всех запросов.

person Yaakov Ellis    schedule 07.05.2014