ASP.NET MVC не вызывает global.asax 'EndRequest
Я пытаюсь выполнить некоторые действия в конце каждого запроса. Я изменил Application_Start (), который генерируется при создании нового проекта, чтобы сделать тест:
protected void Application_Start()
{
EndRequest += (s, e) =>
{
Console.Write("fghfgh");
};
RegisterRoutes(RouteTable.Routes);
}
Лямбда не будет вызвана. Есть идеи почему?
редактировать: я вижу, что они делают аналогичные вещи в SharpArch [http://code.google.com/p/sharp-architecture/] и это работает там ... И нет, я не хочу использовать HttpModule.
edit2: Единственный обходной путь, который я нашел, состоит в том, чтобы использовать Application_EndRequest в сочетании с закрытым статическим членом 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 должен быть закрытым, потому что кажется, что Application_EndRequest вызывается с использованием другого объекта экземпляра (this). Это также может быть причиной того, что мое событие (как описано в начале) не было вызвано.