It is really interesting to see that Application_PreRequestHandlerExecute and  Application_PostRequestHandlerExecute events in global.asax file are executed twice for an .aspx request and all the other global.asax events(BeginRequest etc) are executed only once. Can any one know what is the reason?
I found this by putting a BreakPoint and check the request type by 
HttpContext.Current.Request.Path.Contains(".aspx")
here is code so that every put a BreakPoint and test this,

void Application_BeginRequest(Object sender, EventArgs e) { } void Application_AuthenticateRequest(Object sender, EventArgs e) { } void ...

Go to the complete details ...