ASP.NET MVC系列一:Global.asax用法分析

一般来说ASP.NET应用程序只能有一个Global.asax文件,它提供全局可用代码。这些代码包括应用程序的事件处理程序以及会话事件、方法和静态变量。有时该文件也被称为应用程序文件。

Global.asax文件中的任何代码都是它所在的应用程序的一部分。每个应用程序在其根目录下只能有一个Global.asax文件。然而,这个文件是可选的。如果没有Global.asax文件,应用程序将对所有事件应用由HttpApplication类提供的默认行为。

经典ASP有一个与Global.asax类似格式和构造的,名为Global.asa的文件。实际上,如果将一个正在运行的Global.asa文件代码复制到Global.asax中,应用程序同样可以运行。当应用程序运行的时候,Global.asax的内容被编译到一个继承自HttpApplication类的类中。因此,HttpApplication类中所有的方法、类和对象对于应用程序都是可用的。

CLR监控着Global.asax的变化。如果它察觉到这个文件发生了改变,那么将自动启 动一个新的应用程序复本,同时创建一个新的应用程序域。原应用程序域当前正在处理的请求被允许结束,而任何新的请求都交由新应用程序域来处理。当原应用程 序域的最后一个请求处理完成时,这个应用程序域即被清除。这有效的保证了应用程序可以重新启动,而不被任何用户察觉。

参考资料:

1 从底层了解ASP.NET体系结构

2 Global.asax详解

3 ASP.net全局程序文件Global.asax用法分析

4 Global.asax详解