本文已经进行修改,详情见http://blog.csdn.net/han_yankun2009/article/details/10006579
什么是global文件
有时候叫做 ASP.NET应用程序文件,提供了一种在一个中心位置响应应用程序级或模块级事件的方法。你可以使用这个文件实现应用程序安全性以及其它一些任务
概述:
Global.asax位于应用程序根目录下。虽然 Visual Studio .NET 会自动插入这个文件到所有的 ASP.NET项目中,但是它实际上是一个可选文件。删除它不会出问题——当然是在你没有使用它的情况下。
Global文件被配置为任何直接Http请求都被自动拒绝。所以用户不能下载或查看内容。ASP.NET 页面框架能够自动识别出对Global.asax文件所做的任何更改。在 Global.asax 被更改后ASP.NET页面框架会重新启动应用程序,包括关闭所有的浏览器会话,去除所有状态信息,并重新启动应用程序域。
编程:
Global文件继承自HttpApplication类,它维护一个Httpapplication对象池,并在需要的时候将对象池中的对象分配给应用程序。
Httpapplication对象的一个实例在生存期内被用于处理多个请求,但一个只能处理一个请求。
Global文件包含的常见事件有
事件或方法 | 说明 |
Application_Start | 请求 ASP.NET 应用程序中第一个资源(如页)时调用。在应用程序的生命周期期间仅调用一次 Application_Start 方法。可以使用此方法执行启动任务,如将数据加载到缓存中以及初始化静态值。 在应用程序启动期间应仅设置静态数据。由于实例数据仅可由创建的HttpApplication 类的第一个实例使用,所以请勿设置任何实例数据。 |
Application_ event | 在应用程序生命周期中的适当时候引发,Application_Error 可在应用程序生命周期的任何阶段引发。 由于请求会短路,因此 Application_EndRequest 是唯一能保证每次请求时都会引发的事件。例如,如果有两个模块处理Application_BeginRequest 事件,第一个模块引发一个异常,则不会为第二个模块调用 Application_BeginRequest 事件。但是,会始终调用 Application_EndRequest 方法使应用程序清理资源。 |
HttpApplication.Init | 在创建了所有模块之后,对 HttpApplication 类的每个实例都调用一次。 |
在销毁应用程序实例之前调用。可使用此方法手动释放任何非托管资源。 | |
Application_End | 应用程序结束时,在最后一个HttpApplication销毁之后执行。对应Application_Start,在整个生命周期里面也是只执行一次
|
Session_Start | 会话开始时执行。 |
Session_End | 会话结束或过期时执行 |
小结:
Global.asax文件是用户创建应用程序时自动创建的,它代表的是一个应用程序,不直接接收Http请求。它存储在应用程序的根目录中,具有定义应用程序的边界,初始化应用程序级或会话级变量,连接数据库,发送Cookie等功能