我们如何在asp.net中使用global.asax?那是什么?
答案 0 :(得分:98)
MSDN has an outline global.asax文件的目的。
实际上,global.asax允许您编写为响应“系统级”事件而运行的代码,例如应用程序启动,会话结束,发生应用程序错误,而不必尝试将代码转换为您网站的每一页。
您可以通过选择添加>来使用它。新商品> Visual Studio中的全局应用程序类。添加文件后,您可以在列出的任何事件下添加代码(默认情况下创建,至少在Visual Studio 2008中):
您还可以加入其他事件,例如“LogRequest”。
答案 1 :(得分:58)
全球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:当用户的会话超时,结束或离开应用程序网站时触发。
答案 2 :(得分:10)
Global.asax文件,也称为 ASP.NET应用程序文件,是一个 包含代码的可选文件 响应应用程序级别和 ASP.NET引发的会话级事件 或者通过HTTP模块。
答案 3 :(得分:6)
Global.asax是asp.net应用程序文件。
它是一个可选文件,用于处理ASP.NET或HttpModules引发的事件。主要用于应用程序和会话开始/结束事件以及全局错误处理。
使用时,它应该在网站的根目录中。
答案 4 :(得分:1)
Global.asax可用于处理应用程序产生的事件。此链接提供了一个很好的解释:http://aspalliance.com/1114
答案 5 :(得分:1)
Web应用程序的根目录具有特殊意义,并且该文件夹中可以存在某些内容。 它可以有一个名为“Global.asax”的特殊文件。 ASP.Net框架使用global.asax中的内容并创建一个 运行时的类,它继承自HttpApplication。 在应用程序的生命周期中,ASP.NET维护一个Global.asax派生的HttpApplication实例池。什么时候 一个应用程序收到一个http请求,ASP.Net页面框架会分配其中一个实例来处理它 请求。该实例负责管理分配给它的请求和实例的整个生命周期 只有在请求完成后返回池中时才能重用。 Global.asax中的实例成员不能用于跨请求共享数据,但静态成员可以。 Global.asax可以包含HttpApplication对象的事件处理程序和其他一些重要的方法 将在Web应用程序中的各个点执行