ASP Page Life Cycle
Introduction
Many of us know that IIS
is a web
server and we use it in our .Net application since we need a web server
to run a web application. But I wonder as many of us don't know the internal
architecture of IIS. This article is written for beginners to know the
architecture of IIS.
How
the simple web page execution happens?
As all of us know a
request comes from Client (Browser) and sends to Server (we call it as Web
server) in turn server process the request and sends response back to the client
in according to the client request.
But internally in the web
server there is quite interesting process that happens. To get aware of that
process we should first of all know about the architecture of the IIS
It mainly consists of 3
Parts/Files
When
ever a request comes from the client:
Inetinfo.exe is the
ASP.Net request handler that handles the requests from the client .If it's for
static resources like HTML files or image files inetinfo.exe process the request
and sent to client. If the request is with extension aspx/asp, inetinfo.exe
processes the request to API filter. ISAPI filter will have several runtime
modules called as ISAPI extensions. To process the request ISAPI filter takes
the help of these runtime modules. The runtime module loaded for ASP page is
asp.dll. And for ASP.NET page it's ASPNET_ISAPI.dll. From here the request is
processed to the "worker process". Worker Process will
have several application domains.
Application
Domain
The purpose of the
application domain is in order to isolate one application from another. When
ever we create a new application, application domains are created automatically
by the CLRHost. Worker process will create a block of memory related to
particular application. Application domains provide a more secure and versatile
unit of processing that the common language runtime can use to provide isolation
between applications. Application domains are normally created by runtime hosts.
Runtime host is responsible for bootstrapping the common language runtime before
an application is run.
Worker process sends the
request to HTTPPIPE line.(HTTP Pipeline is nonetheless collection of .net
framework classes). HTTP Pipeline compiles the request into a library and makes
a call to HTTP runtime and runtime creates an instance of page class
Public Class File
Inherits System.Web.UI.Page
End Class 'File
ASP.Net web page is a
class derived from page class, this page class resides in system.web.dll
After creating instance pf
page class HTTP Runtime immediately invokes process request method of page
class
Dim Req As
New Page
Req.ProcessRequest()
Process
Request Method does following things:
Process Request Method
executes set of events for page class .These are called as Page life cycle
events.
Page
Life Cycle Events
Dependencies:
When the request comes to
ASP.net worker process, it will be forwarded to HTTP Application factory. This
"Application Factory" will maintain address of the
application domains which are currently executing under worker process. If the
required virtual directory application domain is unavailable it will create a
new application domain. If the application domain is already existing, the
request will be forwarded to corresponding AppDomain.
Application Domain
maintains page handler factory class. This will contain all libraries addresses
corresponding to webpage. If the requested webpage library is available the
instance of the page class is created, if the library is unavailable the request
will be forwarded to HTTP pipeline.