Я пытаюсь выполнить некоторые действия в конце каждого запроса.
Я изменил 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). Это также может быть причиной того, что мое событие (как описано в начале) не было вызвано.