Redirecionar no tempo limite da sessão no Global.asax no mvc4

Estou tentando detectar quando uma sessão termina e, em seguida, redirecionar o usuário para a página inicial assim que isso for feito no meu arquivo asax global.

Estou usando o código abaixo que encontreiaqui

global.asax:

protected void Session_Start()
    {
        if (Context.Session != null)
        {
            if (Context.Session.IsNewSession)
            {
                string sCookieHeader = Request.Headers["Cookie"];
                if ((null != sCookieHeader) && (sCookieHeader.IndexOf("ASP.NET_SessionId") >= 0))
                {
                    //intercept current route
                    HttpContextBase currentContext = new HttpContextWrapper(HttpContext.Current);
                    RouteData routeData = RouteTable.Routes.GetRouteData(currentContext);


                    //Substitute route Data Token Values for the Area
                    routeData.DataTokens["area"] = "";
                    routeData.DataTokens["UseNamespaceFallback"] = true;


                    //substitute route values
                    routeData.Values["controller"] = "home";
                    routeData.Values["action"] = "index";
                    routeData.Values.Add("timedOut", "true");
                    //routeData.Values["id"] = "timedOut";

                    IRouteHandler routeHandler = routeData.RouteHandler;
                    RequestContext requestContext = new RequestContext(currentContext, routeData);

                    IHttpHandler httpHandler = routeHandler.GetHttpHandler(requestContext);
                    httpHandler.ProcessRequest(Context);

                    Response.Flush();
                    Response.End();
                }
            }
        }
    }

Eu pensei que estava ok, pois funciona no ambiente de desenvolvimento, mas quando eu tento no meu servidor (IIS7), recebo o erro abaixo.

'HttpContext.SetSessionStateBehavior' só pode ser chamado antes de 'HttpApplication.AcquireRequestState'

Eu identifiquei o problema usando links comoaqui mas eu simplesmente não consigo fazê-lo funcionar. Eu acredito que o problema está nas linhas abaixo

IHttpHandler httpHandler = routeHandler.GetHttpHandler(requestContext);
                    httpHandler.ProcessRequest(Context);

No entanto, eu não consigo fazer isso funcionar no servidor. Alguma idéia ou sugestão?

questionAnswers(1)

yourAnswerToTheQuestion