在ASP.NET中global.asax的目的是什么?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (15)

我们如何在ASP.NET中使用global.asax?那是什么?

提问于
用户回答回答于

MSDN概述了global.asax文件的用途。

有效地,global.asax允许您编写代码,以响应“系统级”事件,比如应用程序启动,会话结束和发生应用程序错误,而无需尝试并将代码放入每个事件中网站的页面。

可以通过在Visual Studio中选择添加>新建项目>全局应用程序类来使用它。添加完文件后,您以在列出的任何事件下添加代码(并且至少在Visual Studio 2008中默认创建):

  • Application_Start
  • Application_End
  • session_start
  • Session_End中
  • Application_BeginRequest
  • Application_AuthenticateRequest
  • 应用程序错误

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

用户回答回答于

全局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:当用户的会话超时,结束或离开应用程序网站时触发。

扫码关注云+社区