J'essaie d'effectuer certaines actions à la fin de chaque requête. J'ai changé le Application_Start() qui est généré lors de la création nouveau projet pour faire un test:ASP.NET MVC n'appelle pas global.asax 'EndRequest
protected void Application_Start()
{
EndRequest += (s, e) =>
{
Console.Write("fghfgh");
};
RegisterRoutes(RouteTable.Routes);
}
Le lambda ne sera pas appelé. Des idées pourquoi?
modifier: Je vois qu'ils sont en train de faire chose semblable dans SharpArch [http://code.google.com/p/sharp-architecture/] et il y fait travailler ... Et non, je ne veux pas utiliser un HttpModule.
Edit2: La seule solution que j'ai trouvé est d'utiliser Application_EndRequest conjointement avec un membre statique privé 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 doit être privé parce qu'il semble que le Application_EndRequest est d'être appelé en utilisant différents objet instance (ceci). Cela peut aussi être la raison pour laquelle mon événement (tel que décrit au début) n'a pas été appelé.
Vous devez accepter une réponse pour ce – Simon
Vous pouvez en savoir plus sur pourquoi il agit comme ceci ici: http://devhawk.net/2009/08/06/I+Hate+Globalasax.aspx –