《ASP.NET中HttpApplication和HttpApplicationState对象详解》
1. HttpApplication和HttpApplicationState对象概述
在VB.NET Web应用程序里,如同独立的Windows程序能有全局变量来存储各模块和类共享的值与对象一样,Web应用程序也可以有全局值和对象,而这些值由HttpApplicationState对象保存。它跟大多数基于Web的集合类似,以名称和值的列表形式实现,其中名称是一个索引字符串数组。
不过,不能直接访问HttpApplicationState对象,而是要通过HttpApplication对象来访问。ASP.NET运行时会维护一个HttpApplication对象池,每个请求都会从这个池中获取一个HttpApplication对象实例。当最后一个会话超时或者通过Session.Abandon方法显式关闭应用程序时,运行时会关闭该应用程序。并且,当任何用户首次请求应用程序中的任何页面,以及最后一个活动会话超时或结束后,会触发相应事件。
ASP.NET框架会在任何客户端首次请求应用程序中的任何页面时,为服务器上运行的每个应用程序创建一个唯一的ApplicationState实例。需要注意的是,ASP.NET不会在多台机器之间共享ApplicationState对象,所以不应在应用程序范围内存储特定于某个会话的信息,而应使用SessionState类来存储会话特定的信息。
HttpApplication对象有一个名为Application的属性,它会暴露与特定应用程序关联的HttpApplicationState对象。Web Form Page对象也会将同一个实例作为其A