注:该部分参考的园区的“积少成多”的 《ASP.NET MVC中的Global.asax文件》 。

1、Global.asax文件介绍

  • global.asax这个文件包含全局应用程序事件的事件处理程序。它响应应用程序级别和会话级别事件的代码。
  • 运行时, Global.asax 将被编译成一个动态生成的 .NET Framework 类,该类是从HttpApplication基类派生的。因此在global.asax中的代码可以访问HttpApplication类中所有的public或者protected的成员。
  • global.asax不被用户直接请求,但global.asax中的代码会被自动执行来响应特定的应用程序事件。
  • global.asax是可选的,而且在一个web项目中是唯一的,它应该处于网站的根目录。

 2、Global.asax方法介绍

 public class Global: System.Web.HttpApplication
{
protected void Application_Start(object sender, EventArgs e)
{
//不是每次请求都调用
//在Web应用程序的生命周期里就执行一次
//在应用程序第一次启动和应用程序域创建事被调用
//适合处理应用程序范围的初始化代码
} void Application_End(object sender, EventArgs e)
{
//不是每次请求都调用
//在应用程序关闭时运行的代码,在最后一个HttpApplication销毁之后执行
//比如IIS重启,文件更新,进程回收导致应用程序转换到另一个应用程序域
} void Session_Start(object sender, EventArgs e)
{
//不是每次请求都调用
//会话开始时执行
} void Session_End(object sender, EventArgs e)
{
//不是每次请求都调用
//会话结束或过期时执行
//不管在代码中显式的清空Session或者Session超时自动过期,此方法都将被调用
} void Application_Init(object sender, EventArgs e)
{
//不是每次请求都调用
//在每一个HttpApplication实例初始化的时候执行
} void Application_Disposed(object sender, EventArgs e)
{
//不是每次请求都调用
//在应用程序被关闭一段时间之后,在.net垃圾回收器准备回收它占用的内存的时候被调用。
//在每一个HttpApplication实例被销毁之前执行
} void Application_Error(object sender, EventArgs e)
{
//不是每次请求都调用
//所有没有处理的错误都会导致这个方法的执行
} /*********************************************************************/
//每次请求都会按照顺序执行以下事件
/*********************************************************************/ void Application_BeginRequest(object sender, EventArgs e)
{
//每次请求时第一个出发的事件,这个方法第一个执行
} void Application_AuthenticateRequest(object sender, EventArgs e)
{
//在执行验证前发生,这是创建验证逻辑的起点
} void Application_AuthorizeRequest(object sender, EventArgs e)
{
//当安全模块已经验证了当前用户的授权时执行
} void Application_ResolveRequestCache(object sender, EventArgs e)
{
//当ASP.NET完成授权事件以使缓存模块从缓存中为请求提供服务时发生,从而跳过处理程序(页面或者是WebService)的执行。
//这样做可以改善网站的性能,这个事件还可以用来判断正文是不是从Cache中得到的。
} //------------------------------------------------------------------------
//在这个时候,请求将被转交给合适程序。例如:web窗体将被编译并完成实例化
//------------------------------------------------------------------------ void Application_AcquireRequestState(object sender, EventArgs e)
{
//读取了Session所需的特定信息并且在把这些信息填充到Session之前执行
} void Application_PreRequestHandlerExecute(object sender, EventArgs e)
{
//在合适的处理程序执行请求前调用
//这个时候,Session就可以用了
} //-------------------------------------------------
//在这个时候,页面代码将会被执行,页面呈现为HTML
//------------------------------------------------- void Application_PostRequestHandlerExecute(object sender, EventArgs e)
{
//当处理程序完成对请求的处理后被调用。
} void Application_ReleaseRequestState(object sender, EventArgs e)
{
//释放请求状态
} void Application_UpdateRequestCache(object sender, EventArgs e)
{
//为了后续的请求,更新响应缓存时被调用
} void Application_EndRequest(object sender, EventArgs e)
{
//EndRequest是在响应Request时最后一个触发的事件
//但在对象被释放或者从新建立以前,适合在这个时候清理代码
} void Application_PreSendRequestHeaders(object sender, EventArgs e)
{
//向客户端发送Http标头之前被调用
} void Application_PreSendRequestContent(object sender, EventArgs e)
{
//向客户端发送Http正文之前被调用
}
}

全局应用程序类(Global.asax)的更多相关文章

  1. 004-全局应用程序类Global.asax

    服务器对象:Request.Response.Server.Session.Application.Cookie //功能1:为服务器对象注册Start.End处理 protected void Ap ...

  2. asp.net配置全局应用程序类 巧妙达到定时生成静态页面

    //在项目里添加一个"全局应用程序类(Global Application Class)",在里面写这样的代码: public class Global : System.Web. ...

  3. WPF 10天修炼 第三天- Application全局应用程序类

    Application对象 当一个WPF应用程序启动时,首先会实例化一个全局唯一的Application对象,类似于WinForm下的Application类,用于控制整个应用程序,该类将用于追踪应用 ...

  4. Application全局应用程序类

    当一个WPF应用程序启动时,先会实例化一个全局的唯一的Application.如果开发人员熟悉Windows Form编程,会知道在SystemWindowsForm命名空间中有一个Applicati ...

  5. Global.asax和HttpModule的执行顺序

    Application_Start-->用户自定义的HttpModule-->Application_BeginRequest   (注册->调用) 看到Init方法(在用户自定义的 ...

  6. .net通用防SQL注入漏洞程序(Global.asax方式)

    原理很简单:使用Global.asax中的Application_BeginRequest(object sender, EventArgs e)事件,实现表单或URL提交数据的获取,然后通过SQLI ...

  7. ASP.NET Global.asax详解

    最近在研究bbsmax的代码,但是一直不知道入口在哪里,然后就对各个文件分析了,然后终于在对global.asax文件查看的时候看到Application_BeginRequest才明白入口,所以现在 ...

  8. 【转】asp.net 利用Global.asax 捕获整个解决方案中的异常错误

    之前做项目的时候都是在每个页面中处理这不同的异常信息,一个页面数下来,很多个try{}catch{}语句块,令整个代码结构有些不够美观. 今天看到一篇帖子,是关于利用全局应用程序类来帮忙获取异常信息, ...

  9. Global.asax 文件说明

    引用 来自  http://www.cnblogs.com/jianshao810/archive/2011/02/03/1948912.htm 在网上找了N多相关的东西总说的不够细,现在终于找到了. ...

随机推荐

  1. java实现PV操作

    package com.jayfulmath.designpattern.command; import java.util.concurrent.Semaphore; /* P(S): ①将信号量S ...

  2. vdbench测试过程中遇到的小问题

    1.报Slave hd2-0 prematurely terminated 错误 首先根据提示查看hd2-0.stdout.html文件获取更多的错误信息,这个问题一般是未安装vdbench或者路径不 ...

  3. BZOJ4197 [Noi2015]寿司晚宴 【状压dp】

    题目链接 BZOJ4197 题解 两个人选的数都互质,意味着两个人选择了没有交集的质因子集合 容易想到将两个人所选的质因子集合作为状态\(dp\) \(n\)以内质数很多,但容易发现\(\sqrt{n ...

  4. HDU-3974 Assign the task题解报告【dfs序+线段树】

    There is a company that has N employees(numbered from 1 to N),every employee in the company has a im ...

  5. 64位win10系统无法安装.Net framework3.5的两种解决方法【转】

    近日有网友反映在windows10_64位系统电脑上安装Net framework3.5,操作时总失败,怎么办呢?小编下面就介绍win10 64位系统无法安装Net framework3.5的两种解决 ...

  6. 【agc016D】XOR Replace

    Portal --> agc016D Description ​ 一个序列,一次操作将某个位置变成整个序列的异或和,现在给定一个目标序列,问最少几步可以得到目标序列 ​ Solution ​ 翀 ...

  7. 二次封装bootstrap-table及功能优化

    /** * 设置bootstrat-table * @param params */ function setBootstrapTable (target, params) { // 默认设置表格内容 ...

  8. array_filter 过滤一维中空数组,数组的序列不变

    <?php header('Content-type:text;charset=utf8'); $str = "%11111%22222%333333%"; $arr = e ...

  9. linux shell学习二

    参考:http://www.cnblogs.com/waitig/p/5531463.html Shell注释 Shell中的注释以“#”号开头,所有以“#”号开头的代码都会被解释器所忽略. 比如下面 ...

  10. Java设计模式の责任链模式

    在阎宏博士的<JAVA与模式>一书中开头是这样描述责任链(Chain of Responsibility)模式的: 责任链模式是一种对象的行为模式.在责任链模式里,很多对象由每一个对象对其 ...