asp.net中global.asax的用途是什么?
我们如何在asp.net中使用global.asax? 那是什么?
MSDN概述了global.asax文件的用途。
有效地,global.asax允许您编写代码,以响应“系统级”事件,比如应用程序启动,会话结束,应用程序错误发生,而不必尝试并将代码插入每个事件您网站的页面。
您可以通过在Visual Studio中select添加>新build项目>全局应用程序类来使用它。 添加完文件后,可以在列出的任何事件下添加代码(至less在Visual Studio 2008中默认创build):
- 的Application_Start
- Application_End
- 在session_start
- Session_End中
- 的Application_BeginRequest
- Application_AuthenticateRequest
- 应用程序错误
还有其他的事件,你也可以挂钩,如“LogRequest”。
全球asax事件解释
Application_Init:当应用程序初始化或首次调用时触发。 它针对所有HttpApplication对象实例进行调用。
Application_Disposed:在应用程序被销毁之前触发。 这是清理以前使用的资源的理想位置。
Application_Error:在应用程序中遇到未处理的exception时触发。
Application_Start:创buildHttpApplication类的第一个实例时触发。 它允许您创build所有HttpApplication实例可访问的对象。
Application_End:当HttpApplication类的最后一个实例被销毁时触发。 在应用程序的生命周期中它只被触发一次。
Application_BeginRequest:收到应用程序请求时触发。 这是针对请求触发的第一个事件,通常是用户input的页面请求(URL)。
Application_EndRequest:为应用程序请求触发的最后一个事件。
Application_PreRequestHandlerExecute:在ASP.NET页面框架开始执行事件处理程序(如页面或Web服务)之前触发。
Application_PostRequestHandlerExecute:当ASP.NET页面框架完成执行事件处理程序时触发。
Applcation_PreSendRequestHeaders:在ASP.NET页面框架向发出请求的客户端(浏览器)发送HTTP头之前触发。
Application_PreSendContent:在ASP.NET页面框架将内容发送到请求客户端(浏览器)之前触发。
Application_AcquireRequestState:当ASP.NET页面框架获取与当前请求相关的当前状态(会话状态)时触发。
Application_ReleaseRequestState:当ASP.NET页面框架完成所有事件处理程序的执行时触发。 这导致所有状态模块保存其当前状态数据。
Application_ResolveRequestCache: ASP.NET页面框架完成授权请求时触发。 它允许caching模块提供来自caching的请求,从而绕过处理程序的执行。
Application_UpdateRequestCache: ASP.NET页面框架完成处理程序执行时触发,以允许caching模块存储响应以用于处理后续请求。
Application_AuthenticateRequest:当安全模块将当前用户的身份build立为有效时触发。 此时,用户的凭证已被validation。
Application_AuthorizeRequest:安全模块validation用户可以访问资源时触发。
Session_Start:当新用户访问应用程序网站时触发。
Session_End:当用户的会话超时,结束或离开应用程序网站时触发。
Global.asax文件(也称为ASP.NET应用程序文件)是一个可选文件,其中包含用于响应由ASP.NET或HTTP模块引发的应用程序级别和会话级别事件的代码。
Global.asax是asp.net应用程序文件。
它是一个可选文件,用于处理由ASP.NET或HttpModules引发的事件。 主要用于应用程序和会话开始/结束事件以及全局error handling。
使用时,应该在网站的根部。
Global.asax可以用来处理由应用程序引起的事件。 这个链接提供了一个很好的解释: http : //aspalliance.com/1114
Web应用程序的根目录具有特殊意义,并且可以在该文件夹中显示某些内容。 它可以有一个称为“Global.asax”的特殊文件。 ASP.Net框架使用global.asax中的内容,并在运行时创build一个inheritance自HttpApplication的类。 在应用程序的生命周期中,ASP.NET维护一个Global.asax派生的HttpApplication实例池。 当一个应用程序收到一个http请求时,ASP.Net页面框架分配其中一个实例来处理该请求。 该实例负责pipe理分配给它的请求的整个生命周期,并且实例只有在请求完成并返回到池后才能重新使用。 Global.asax中的实例成员不能用于跨请求共享数据,但静态成员可以。 Global.asax可以包含HttpApplication对象的事件处理程序和一些其他重要的方法,这些方法可以在Web应用程序的各个点执行