ASP.NET MVC no llama a global.asax 'EndRequest

Estoy intentando realizar algunas acciones al final de cada solicitud. Cambié el Application_Start () que se genera cuando se crea un nuevo proyecto para hacer una prueba:

protected void Application_Start()
{
    EndRequest += (s, e) =>
    {
        Console.Write("fghfgh");
    };
    RegisterRoutes(RouteTable.Routes);
}

La lambda no será llamada. ¿Alguna idea de por qué?

edit: veo que están haciendo algo similar en SharpArch http: //code.google.com/p/sharp-architecture/] y funciona allí ... Y no, no quiero usar un HttpModule.

edit2: La única solución que encontré es usar Application_EndRequest junto con un miembro estático privado de global.asax:

private static WebSessionStorage wss;
protected void Application_Start()
{
    //...
    wss = new WebSessionStorage(this);
    //...
}

protected void Application_EndRequest(object sender, EventArgs e)
{
    wss.EndRequest(sender, e);
}

wss debe ser privado porque parece que se está llamando a Application_EndRequest utilizando un objeto de instancia diferente (esto). Esa también puede ser la razón de que mi evento (como se describe al principio) no se llame.

Respuestas a la pregunta(3)

Su respuesta a la pregunta