Asp.net MVC MiniProfiler"请求在此上下文中不可用"

时间:2014-05-06 11:22:34

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

我正在尝试将MiniProfiler用于使用Oracle DB的MVC应用程序。这是我的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);

    }

当申请开始时,我得到:

  

"请求在此上下文中不可用"

1 个答案:

答案 0 :(得分:13)

您收到此错误是因为您在错误的位置运行MiniProfiler.Start()。您需要MiniProfiler.Start()作为Application_BeginRequest的一部分运行。将它移动到这个功能,它应该工作。

当您将其作为Application_Start的一部分运行时,它会失败,因为它正在尝试访问HttpContext.Current无法访问的Application_Start

在MiniProfiler的上下文中,Application_Start是您希望为所有请求制作任何全局MiniProfiler.Setting自定义项的好地方。