全局应用程序类(Global.asax)
注:该部分参考的园区的“积少成多”的 《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)的更多相关文章
- 004-全局应用程序类Global.asax
服务器对象:Request.Response.Server.Session.Application.Cookie //功能1:为服务器对象注册Start.End处理 protected void Ap ...
- asp.net配置全局应用程序类 巧妙达到定时生成静态页面
//在项目里添加一个"全局应用程序类(Global Application Class)",在里面写这样的代码: public class Global : System.Web. ...
- WPF 10天修炼 第三天- Application全局应用程序类
Application对象 当一个WPF应用程序启动时,首先会实例化一个全局唯一的Application对象,类似于WinForm下的Application类,用于控制整个应用程序,该类将用于追踪应用 ...
- Application全局应用程序类
当一个WPF应用程序启动时,先会实例化一个全局的唯一的Application.如果开发人员熟悉Windows Form编程,会知道在SystemWindowsForm命名空间中有一个Applicati ...
- Global.asax和HttpModule的执行顺序
Application_Start-->用户自定义的HttpModule-->Application_BeginRequest (注册->调用) 看到Init方法(在用户自定义的 ...
- .net通用防SQL注入漏洞程序(Global.asax方式)
原理很简单:使用Global.asax中的Application_BeginRequest(object sender, EventArgs e)事件,实现表单或URL提交数据的获取,然后通过SQLI ...
- ASP.NET Global.asax详解
最近在研究bbsmax的代码,但是一直不知道入口在哪里,然后就对各个文件分析了,然后终于在对global.asax文件查看的时候看到Application_BeginRequest才明白入口,所以现在 ...
- 【转】asp.net 利用Global.asax 捕获整个解决方案中的异常错误
之前做项目的时候都是在每个页面中处理这不同的异常信息,一个页面数下来,很多个try{}catch{}语句块,令整个代码结构有些不够美观. 今天看到一篇帖子,是关于利用全局应用程序类来帮忙获取异常信息, ...
- Global.asax 文件说明
引用 来自 http://www.cnblogs.com/jianshao810/archive/2011/02/03/1948912.htm 在网上找了N多相关的东西总说的不够细,现在终于找到了. ...
随机推荐
- css基于文件格式使用不同的样式
a[href^="http://"]{ padding-right: 20px; background: url(external.gif) no-repeat center ri ...
- 深入理解JVM一配置参数
一.JVM配置参数分为三类参数: 1.跟踪参数 2.堆分配参数 3.栈分配参数 这三类参数分别用于跟踪监控JVM状态,分配堆内存以及分配栈内存. 二.跟踪参数 跟踪参数用于跟踪监控JVM,往往被开发人 ...
- jQuery时间轴
常见的时间轴导航 横向时间轴
- 根据数据库连接的java.sql.Connection获取数据库名称
// 获取数据库的元数据信息 DatabaseMetaData metaData = conn.getMetaData(); // 获取数据库名称的方法 System.out.println(meta ...
- 【OpenCV】SIFT原理与源码分析:关键点搜索与定位
<SIFT原理与源码分析>系列文章索引:http://www.cnblogs.com/tianyalu/p/5467813.html 由前一步<DoG尺度空间构造>,我们得到了 ...
- 斯皮尔曼等级相关(Spearman’s correlation coefficient for ranked data)
sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...
- Eclipse 导入Hadoop 2.6.0 源码
1. 首先前往 官网(Hadoop 2.6 下载地址)上下载Hadoop的源码文件,并解压 2. 事先请确定已经安装好jdk以及maven(Maven安装教程 这是其他人写的一篇博文,保存profil ...
- CCPC2018-A-Buy and Resell
Problem Description The Power Cube is used as a stash of Exotic Power. There are n cities numbered 1 ...
- (转)使用Excel批量给数据添加单引号和逗号
在使用PLSQL连接oracle数据库处理数据的过程中,常用的操作是通过ID查询出数据,ID需要附上单引号,如果查询的ID为一条或者几条,我们手动添加即可,但是如果是几百条.几千条的话,就需要使用一些 ...
- AJAX流程
创建一个XHR对象 var xmlhttp; if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari ...