2010-02-26 187 views

回答

70

的Global.asax文件的目的MSDN has an outline

有效地,global.asax允许您编写响应“系统级”事件运行的代码,例如应用程序启动,会话结束,发生应用程序错误,而不必尝试并敲入代码插入到您网站的每一页。

您可以通过在Visual Studio中选择添加>新建项目>全局应用程序类来使用它。

  • 的Application_Start
  • Application_End
  • 在session_start
  • :一旦你添加的文件,你可以(至少在Visual Studio 2008和创建默认情况下),在任何列出的事件添加代码
  • Session_End中
  • 的Application_BeginRequest
  • Application_AuthenticateRequest
  • 的Application_Error

还有其他一些事件也可以挂钩,比如“LogRequest”。

+1

global.asax的条目已从维基百科中删除。 – 2015-08-06 22:27:17

+0

@CathySullivan,更新,谢谢! :) – Rob 2015-08-07 07:00:12

+0

我们可以添加windows窗体的global.asax文件吗? – 2015-10-07 05:13:11

5

Global.asax是asp.net应用程序文件。

它是一个可选文件,用于处理由ASP.NET或HttpModules引发的事件。主要用于应用程序和会话开始/结束事件以及全局错误处理。

使用时,应该在网站的根目录下。

42

全球ASAX事件解释

Application_Init:当应用程序初始化或第一次调用触发。它针对所有HttpApplication对象实例进行调用。

Application_Disposed:就在应用程序被销毁之前触发。这是清理以前使用的资源的理想位置。

Application_Error:在应用程序中遇到未处理的异常时触发。

Application_Start:当创建HttpApplication类的第一个实例时触发。它允许您创建可由所有HttpApplication实例访问的对象。

Application_End:当HttpApplication类的最后一个实例被销毁时触发。它在应用程序的生命周期中仅被触发一次。

Application_BeginRequest:收到应用程序请求时触发。这是针对请求触发的第一个事件,通常是用户输入的页面请求(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页面框架完成授权请求时触发。它允许缓存模块提供来自缓存的请求,从而绕过处理程序执行。

Application_UpdateRequestCache:当ASP.NET页面框架完成处理程序执行以允许缓存模块存储响应以用于处理后续请求时触发。

Application_AuthenticateRequest:当安全模块将当前用户的身份建立为有效时触发。此时,用户的凭证已被验证。

Application_AuthorizeRequest:当安全模块验证用户可以访问资源时触发。

Session_Start:当新用户访问应用程序网站时触发。

Session_End:当用户的会话超时,结束或他们离开应用程序网站时触发。

0

Web应用程序的根目录下具有特殊的意义和特定内容可以存在于该文件夹中。 它可以有一个称为“Global.asax”的特殊文件。 ASP.Net框架使用global.asax中的内容并在运行时创建一个 类,该类继承自HttpApplication。 在应用程序的生命周期中,ASP.NET维护一个由Global.asax派生的HttpApplication实例池。当一个应用程序接收到一个http请求时,ASP.Net页面框架将分配这些实例中的一个来处理该 请求。该实例负责管理分配给它的请求的整个生命周期,实例 只有在请求完成并返回到池后才能重新使用。 Global.asax中的实例成员不能用于跨请求共享数据,但静态成员可以。 Global.asax可以包含HttpApplication对象的事件处理程序以及一些其他重要方法,这些方法在网络应用程序中的各个点上执行