简体   繁体   中英

Asp.net MVC MiniProfiler “Request is not available in this context”

I am trying to use MiniProfiler for my MVC application which is using Oracle DB. Here is my 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);

    }

When application starts i am getting :

"Request is not available in this context"

You are getting this error because you are running MiniProfiler.Start() in the wrong place. You need to run MiniProfiler.Start() as part of Application_BeginRequest . Move it to this function and it should work.

When you run it as part of Application_Start it fails, because it is trying to access HttpContext.Current , which is not accessible in Application_Start .

In the context of MiniProfiler, Application_Start is a good place to make any global MiniProfiler.Setting customizations that you would like to have in place for all requests.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM