Event sequence

G

Guest

You would think this list exists but I can’t find it anywhere. Is this the
correct order for these events to be called?

Global.asax Application_Start (only once)
Global.asax Application_Init (initialize for app here – can be called
multiple times)

BeginRequest
AuthenticateRequest
PostAuthenticateRequest
AuthorizeRequest
PostAuthorizeRequest
ResolveRequestCache
PostResolveRequestCache
After the PostResolveRequestCache event and before the PostMapRequestHandler
event, an event handler (a page corresponding to the request URL) is created.
PostMapRequestHandler
AcquireRequestState
Global.asax Session_OnStart (if needed)
PostAcquireRequestState
PreRequestHandlerExecute
The event handler is executed.
PostRequestHandlerExecute
ReleaseRequestState
PostReleaseRequestState
After the PostReleaseRequestState event, response filters, if any, filter
the output.
UpdateRequestCache
PostUpdateRequestCache
EndRequest (always called)

Global.asax Session_OnEnd (on timeout – always after all of the above)

Global.asax Application_Dispose (called once for each Application_Init)
Global.asax Application_End (only once)

--
thanks - dave
david_at_windward_dot_net
http://www.windwardreports.com

Cubicle Wars - http://www.windwardreports.com/film.htm
 
G

Guest

That link seems to be for ASP.NET 3.0. It doesn't appear to list the actual
events. Or am I missing something?

--
thanks - dave
david_at_windward_dot_net
http://www.windwardreports.com

Cubicle Wars - http://www.windwardreports.com/film.htm




Alvin Bruney said:
It is here: http://msdn2.microsoft.com/en-us/library/ms178472.aspx

--
________________________
Warm regards,
Alvin Bruney [MVP ASP.NET]

[Shameless Author plug]
Professional VSTO.NET - Wrox/Wiley
The O.W.C. Black Book with .NET
www.lulu.com/owc, Amazon
Blog: http://www.msmvps.com/blogs/alvin
-------------------------------------------------------


David Thielen said:
You would think this list exists but I can't find it anywhere. Is this the
correct order for these events to be called?

Global.asax Application_Start (only once)
Global.asax Application_Init (initialize for app here - can be called
multiple times)

BeginRequest
AuthenticateRequest
PostAuthenticateRequest
AuthorizeRequest
PostAuthorizeRequest
ResolveRequestCache
PostResolveRequestCache
After the PostResolveRequestCache event and before the
PostMapRequestHandler
event, an event handler (a page corresponding to the request URL) is
created.
PostMapRequestHandler
AcquireRequestState
Global.asax Session_OnStart (if needed)
PostAcquireRequestState
PreRequestHandlerExecute
The event handler is executed.
PostRequestHandlerExecute
ReleaseRequestState
PostReleaseRequestState
After the PostReleaseRequestState event, response filters, if any, filter
the output.
UpdateRequestCache
PostUpdateRequestCache
EndRequest (always called)

Global.asax Session_OnEnd (on timeout - always after all of the above)

Global.asax Application_Dispose (called once for each Application_Init)
Global.asax Application_End (only once)

--
thanks - dave
david_at_windward_dot_net
http://www.windwardreports.com

Cubicle Wars - http://www.windwardreports.com/film.htm
 
S

Steven Cheng[MSFT]

Hello Dave,

The article Alvin mentioned describes the life cycle and events of ASP.NET
page.

The following one has detailed describes the application & pipeline level
events and their fire sequence:

#ASP.NET Application Life Cycle Overview
http://msdn2.microsoft.com/en-us/library/ms178473.aspx

Actually, Application_Start and Application_End events are only fired once
during the ASP.NET application's lifetime.


The Application.Init and Dispose event are two event specific to each
HttpApplication class(and our global.asax class which derive from
HttApplication). And for each ASP.NET request, there will has a dedicated
HttpAppliction instance associated with it, so the "Init" and "Dispose"
event fires once for each ASP.NET request.

Also, for other events listed, they also fires once in each ASP.NET
request, but they're more coupled with ASP.NET's server-side pipeline where
we can do some customization on the request.

Hope this helps. If there is anything unclear, please feel free to post
here.

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead



==================================================

Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications.



Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscriptions/support/default.aspx.

==================================================



This posting is provided "AS IS" with no warranties, and confers no rights.
 
S

Steven Cheng[MSFT]

Thanks for Mark's informative input.

Hi Dave,

I think you don't need to care about the Init and dispolse event since
they're specific to HttpApplicationclass's instance creation and
termination rather than ASP.NET request lifecycle.

As for Session's OnStart and OnEnd, certianly it won't occur in each
requests and will fire depend on the current request's status. To further
explain it, we should start from how SessionState management is implemented
in ASP.NET, open the "web.config" in the framework folder, you'll find the
SessionState management is done through the "SessionStateModule" httpmodule
configured as below:


==============
<httpModules>
<add name="OutputCache"
type="System.Web.Caching.OutputCacheModule" />
<add name="Session"
type="System.Web.SessionState.SessionStateModule" />
<add name="WindowsAuthentication"
type="System.Web.Security.WindowsAuthenticationModule" />
<add name="FormsAuthentication"
type="System.Web.Security.FormsAuthenticationModule" />
...................
...................
</httpModules>
================


In the module's processing methods, it will check session's status(from
cookie or url string) and determine whether to create a new session or
reset the current session's timeout window.... You can use reflector to
insepect the methods of SessionStateModule for a thorough idea on how it
works.

Hope this helps some.



Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead



This posting is provided "AS IS" with no warranties, and confers no rights.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,989
Messages
2,570,207
Members
46,782
Latest member
ThomasGex

Latest Threads

Top