个类直接继承自HttpApplication:
public class Global : System.Web.HttpApplication
HttpApplication的主要职责是作为Http管道的事件控制器,所以它的接口主要包含的是事件.事件挂接是非常广泛的,包括以下这些:
·BeginRequest
·AuthenticateRequest
·AuthorizeRequest
·ResolveRequestCache
·AquireRequestState
·PreRequestHandlerExecute
·…Handler Execution…
·PostRequestHandlerExecute
·ReleaseRequestState
·UpdateRequestCache
·EndRequest
每个事件在Global.assx文件中以Application_前缀开头的空事件作为实现.例如, Application_BeginRequest(), Application_AuthorizeRequest()..这些处理器为了便于使用而提供因为它们是在程序中经常被使用的,这样你就不用显式的创建这些事件处理委托了。
理解每个ASP.NET虚拟目录在它自己的应用程序域中运行,而且在应用程序域中有多个从ASP.NET管理的池中返回的HttpApplication实例同时运行,是非常重要的,这是多个请求可以被同时处理而不互相妨碍的原因。
查看列表4来获得应用程序域,线程和HttpApplication之间的关系。
列表4-显示应用程序域,线程和HttpApplication实例之间的关系。
private void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
this.ApplicationId = ((HowAspNetWorks.Global) HttpContext.Current.ApplicationInstance).ApplicationId ;