我試圖在每個請求結束時執行一些操作。 我改變了的Application_Start()這是當創建新的項目進行測試產生:ASP.NET MVC不會調用global.asax'EndRequest
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中的私有靜態成員:因爲它似乎像Application_EndRequest採用不同的是被稱爲
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必須是私有實例對象(this)。這也可能是我的事件(如開頭所述)未被調用的原因。
u shoudl接受這個問題的答案 – Simon 2010-01-08 02:13:03
你可以在這裏閱讀更多關於爲什麼它的行爲如下:http://devhawk.net/2009/08/06/I+Hate+Globalasax.aspx – 2011-01-30 23:12:00