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模块引发的应用程序级别和会话级别事件的代码。

http://msdn.microsoft.com/en-us/library/2027ewzw.aspx

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应用程序的各个点执行