多次在我的應用程序正在定義一個實現IHttpModule的一類,它包含以下方法Application_EndRequest(對象發件人,EventArgs的)被稱爲在asp.net
public void Init(HttpApplication application)
{
application.EndRequest += new EventHandler(Application_EndRequest);
}
private void Application_EndRequest(object sender, EventArgs e)
{
HttpApplication application = (HttpApplication)sender;
HttpContext context = application.Context;
IObjectContainer objectClient = context.Items[KEY_DB4O_CLIENT] as IObjectContainer;
if (objectClient != null)
{
objectClient.Close();
}
objectClient = null;
context.Items[KEY_DB4O_CLIENT] = null;
}
當我嘗試運行應用程序並調試它,我注意到一個奇怪的事情:
在chrome私人無效Application_EndRequest(對象發件人,EventArgs e)在應用程序啓動時執行3次,應用程序結束時執行3次。
在Internet Explorer中private void Application_EndRequest(對象發件人,EventArgs e)在應用程序啓動時執行2次,在應用程序結束時執行2次。
爲什麼Application_EndRequest被執行多次。它不應該只運行一次?
另外我想知道Visual Studio開發Web服務器和IIS之間的區別?
兩者之間有什麼區別。
請幫我在期待
感謝,因爲是運行時處理的請求
@Andrew是在應用程序中添加Application_EndRequest和Init方法的開銷,因爲它們必須在每次請求之前執行多次?當應用程序啓動和結束時,是否有明確的方法來調用它們? – 2011-04-15 08:53:53
你的意思是'Application_Start'和'Application_End',也許? – 2011-04-15 08:55:09
@Andrew似乎在沒有必要執行它們時會被執行?爲什麼他們這樣被執行? – 2011-04-15 08:55:13