一、Global.asax
1、global.asax是什么?
一个文本文件,至于它包含写什么内容?顾名思义,global 肯定是掌管一个应用程序(application)的全局性的东西,例如应用程序的事件处理程序以及会话事件、方法和静态变量。So,一个应用程序(application)的根目录中就只能有一个Global文件。
2、可选文件
Global 类
看global.asax 文件头:publicclass Global : HttpApplication。发现这个文件中的global 类是继承自 HttpApplication类。也就是说这个global中类都是来自HttpApplication,So,这个文件是可选的。也就是说,如果没有global.asax 这个类,应用程序(Application)的全局性东西将由HttpApplication类来默认提供。
3、global 中的常用事件
Application_start;Application_end;Session_start;Session_end;
Application_Disposed:当CLR从内存中移除应用程序时触发。
Application_Error:无论在应用程序中何时何处发生未处理的错误都将触发。它提供了一个实现通用应用程序错误处理的好机会。
只写了这几个事件,是因为现阶段,我只学到了ASP.NET 常用的几个内置对象,然后再看global 中的事件,Application,session 这不是都是对全局事件的处理吗??
二、global.asax & Web.config
1、级别不同
Global.asax 仅且只能处于应用程序(application)的根目录中;web.config则不同,处于应用程序根目录亦可,次级目录亦可。
2、作用不同
Global.asax 是设定应用程序(application)中事件,控制应用程序(application)的执行,只有当应用程序(application)包含的事件发生变化时,才会执行global.axas 文件;而web.config 是用来对应用程序(application)进行设置的,每个页面启动时都会先运行web.config 文件。
3、相同
两者都不被外界访问。
这个可以结合下面的这段话理解:一个应用程序(application)中只会初始化一个httpApplication 类,但是会有N多个web pages.而这个Global.asax文件就是主管一个Application类的大方向控制,所以当我们登陆一个应用程序时,在这个应用程序的页面间来回跳转,有些信息是保持,例如:session是不变的;但是每个页面需要具体的web.config 来进行详细配置。如果某个页面没有web.config 页面,也不是问题,它汇集成子父类的web.config 页面,因为在应用程序(application)的根目录下有一个web.config文件。其他子程序可以继承这个web文件。
三、Web.config & App.config
这个就更好说了。从C/S编程到B/S编程的同学就很容易对比了。
书上说:app.config,是桌面应用程序的配置文件;
web.config是ASP.NET应用程序的配置文件。
我说:其实这两个文件是一样的,只是在C/S 中叫“App.config",在B/S中叫做“Web.config"