Asp.net mvc 3 HttpContext.CurrentRequest“当前请求”;“不可用”;“在运行时”;本地IIS Web服务器

Asp.net mvc 3 HttpContext.CurrentRequest“当前请求”;“不可用”;“在运行时”;本地IIS Web服务器,asp.net-mvc-3,Asp.net Mvc 3,我试图在global.asax中的application_start事件中使用http上下文(在Httpcontext.current的帮助下),然后您将收到一个错误:-Httpcontext。当前请求在此上下文中不可用 通过使用静态构造函数,可以很容易地解决这个问题,该构造函数在第一次访问对象时触发。我们可以在Application_Beginrequest事件中保留一个标志,并轻松确定初始化应用程序的请求 但在这种情况下,它会在每次请求时创建,这对我来说不是必需的。我想创建或访问Httpco

我试图在global.asax中的application_start事件中使用http上下文(在Httpcontext.current的帮助下),然后您将收到一个错误:-Httpcontext。当前请求在此上下文中不可用

通过使用静态构造函数,可以很容易地解决这个问题,该构造函数在第一次访问对象时触发。我们可以在Application_Beginrequest事件中保留一个标志,并轻松确定初始化应用程序的请求

但在这种情况下,它会在每次请求时创建,这对我来说不是必需的。我想创建或访问Httpcontext.current一次

我的代码如下:-

        `//var context = new HttpContextWrapper(HttpContext.Current);
        //var routeData = RouteTable.Routes.GetRouteData(context) ?? new RouteData();
        //var requestContext = new RequestContext(context, routeData);
        //var urlHelper = new UrlHelper(requestContext);
        //var url = urlHelper.Action("Home", "Index");

        var httpContext = new HttpContextWrapper(HttpContext.Current);
        UrlHelper urlHelper = new UrlHelper(new RequestContext(httpContext, new RouteData()));
        if (urlHelper.RequestContext.HttpContext.Request.IsLocal)
        {

        }
        //if (((requestContext.HttpContext).Request).IsLocal)
        //{

        //}`

集成模式下的
App\u Start
中没有
HttpContext
HttpRequest
实例。你必须解决这个问题。如果您确实需要在第一次请求时执行某些操作,请在global.asax中注册新的
BeginRequest
处理程序,然后在完成后取消注册