在给Web应用程序添加新项时,选择添加“全局应用程序类(Glbal Application Class)”,会添加Global.asax文件,该文件有应用程序用于保存应用程序级的事件、对象和变量,这些都可以在应用程序的范围内访问。
ASPNET应用程序只能有一个Global.asax文件,默认如下:
<%@ Application Language="VB" %> <script runat="server"> Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs) '在应用程序启动时运行的代码 End Sub Sub Application_End(ByVal sender As Object, ByVal e As EventArgs) '在应用程序关闭时运行的代码 End Sub Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs) '在出现未处理的错误时运行的代码 End Sub Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs) '在新会话启动时运行的代码 End Sub Sub Session_End(ByVal sender As Object, ByVal e As EventArgs) '在会话结束时运行的代码。 ' 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为 '设置为 InProc 时,才会引发 Session_End 事件。如果会话模式 '设置为 StateServer 或 SQLServer,则不会引发该事件。 End Sub </script>
补充,还可以在这个文件中构建如下事件:
- Application_Start:在接受到第一个请求时调用,在这里可以给应用程序级变量赋值,或指定所有用户都必须维护的状态的理想位置。
- Seesion_Start:在用户第一次访问应用程序时调用。
- Application_BeginRequest:在每个请求发出之前引发。即,在请求到达服务器,且得到处理之前,会引发它,并在处理该请求之前处理它。
- Application_AuthenticateRequest:每个请求都会触发它,允许用户为请求建立定制的身份验证。
- Application_Error:用户跑出错误时触发。适合于提供应用程序级的错误处理,或吧错误记录到服务器的日志中。
- Session_End:在InProc模式下运行时,此事件在终端用户退出应用程序时引发。
- Application_End:在应用程序结束时引发。一般ASPNET很好的完成了关闭和清理剩余对象的任务。
在这个文件中还可以使用指令,
- @Application
- @Assembly
- @Import