跟Request有关的放到后面一起说,先说其他的5个。

Application_Init:在每一个HttpApplication实例初始化的时候执行。

Application_Disposed:在每一个HttpApplication实例被销毁之前执行。

Application_Error:所有没有处理的错误都会导致这个方法的执行。

Application_Start:在程序初始化的时候执行。在Web应用程序的生命周期里就执行一次(自动的重新启动算另外一次生命周期),这里只能放一些公用的信息,比如HttpApplicationState。

Application_End:应用程序结束时,在最后一个HttpApplication销毁之后执行。对应Application_Start,在整个生命周期里面也是只执行一次。

下面来看看跟Request有关的,首先我们来看看相应的事件执行顺序:

1.      BeginRequest

2.      AuthenticateRequest

3.      AuthorizeRequest

4.      ResolveRequestCache

5.      AcquireRequestState

6.      PreRequestHandlerExecute

7.      PostRequestHandlerExecute

8.      ReleaseRequestState

9.      UpdateRequestCache

10.  EndRequest

另外还有两个:

1.      PreSendRequestHeaders

2.      PreSendRequestContent

这两个事件的顺序是无法确定的,按照MSDN的说法,它们随时都可能发生。下面就按这个顺序来解释一下它们在Global.asax.cs中相应的事件处理方法的含义。

Application_BeginRequest:BeginRequest是在收到Request时第一个触发的事件,这个方法自然就是第一个执行的了。

Application_AuthenticateRequest:当安全模块已经建立了当前用户的标识后执行。

Application_AuthorizeRequest:当安全模块已经验证了当前用户的授权时执行。

Application_ResolveRequestCache:当ASP.NET完成授权事件以使缓存模块从缓存中为请求提供服务时发生,从而跳过处理程序(页面或者是WebService)的执行。这样做可以改善网站的性能,这个事件还可以用来判断正文是不是从Cache中得到的。

Application_AcquireRequestState:当ASP.NET获取当前请求所关联的当前状态(如Session)时执行(真是拗口啊,msdn上就这样写的,我自己想不出什么好句子了)。

Application_PreRequestHandlerExecute:当ASP.Net即将把请求发送到处理程序对象(页面或者是WebService)之前执行。这个时候,Session就可以用了。

Application_PostRequestHandlerExecute:当处理程序对象(页面或者是WebService)工作完成之后执行。

Application_ReleaseRequestState:在ASP.NET执行完所有请求处理程序后执行。ReleaseRequestState事件将使当前状态数据被保存。

Application_UpdateRequestCache:在ASP.NET执行完处理程序后,为了后续的请求而更新响应缓存时执行。

Application_EndRequest:同上,EndRequest是在响应Request时最后一个触发的事件,这个方法自然就是最后一个执行的了。

再说这两个无顺序的

Application_PreSendRequestHeaders:向客户端发送Http标头之前执行。

Application_PreSendRequestContent:向客户端发送Http正文之前执行。

最后就是两个关于Session的,这就简单咯

Session_Start:会话开始时执行。

Session_End:会话结束或过期时执行。

其实Global.asax.cs中不只可以放这些,其他的实现了IHttpModule接口的类所暴露出来的事件都可以使用这样的方式放到这里来。前提是在Global.asax(或Web.Config)中有相应的声明。另外,Global.asax中还可以有很多的花样,但是我没有整理,其实也很简单(更主要的是很多时候不咋用得上),MSDN里面有详细的介绍,大家可以查一下,我觉得最有用的就数那个object标记了,^_^

Global.asax.cs中的方法(包括自定义方法)的含义相关推荐

  1. 通过在Global.asax文件中配置Application来统计的方法

    这是通过在Global.asax文件中配置Application来统计的方法...... using System; using System.Collections; using System.Co ...

  2. 运行mvc项目报错 %@ Application Codebehind=Global.asax.cs Inherits=NHAPPAPI.MvcApplication Language=C...

    当运行项目报如下错误时,检查网站生成目录是否含有特殊符号或空格 <%@ Application Codebehind="Global.asax.cs" Inherits=&q ...

  3. asp.net页面调用cs中的方法

    其中GetArea 在cs文件中的方法, GetArea(string provincecode, string citycode, string areacode) 在页面中可以这样调用cs中的方法 ...

  4. ASP.NET 调试出现%@ Application Codebehind=Global.asax.cs Inherits=XXX.XXX.Global Language=C# %...

    ASP.NET 调试出现<%@ Application Codebehind="Global.asax.cs" Inherits="XXX.XXX.Global&q ...

  5. %@ Application Codebehind=Global.asax.cs Inherits=XXX.MvcApplication Language=C# %

    <%@ Application Codebehind="Global.asax.cs" Inherits="XXX.MvcApplication" Lan ...

  6. matplotlib.pyplot中add_subplot方法参数111的含义

    >引自:http://www.codeweblog.com/matplotlib-pyplot中add_subplot方法参数111的含义/

  7. %@ Application Codebehind=Global.asax.cs Inherits=FS.JYPEIS.WeCharReserve.WebApiApplication Lan

    直接开门见山 错误如下: 在网上找到如下原因: 1.项目命名空间  检查项目命名空间 包括Global.asax.app_start下.controllers等文件夹下,命名空间是否与项目名称一致(至 ...

  8. C# Global.asax.cs 定时任务

    定时执行更新Redis缓存操作 protected void Application_Start(object sender, EventArgs e) {Timer timer = new Time ...

  9. 行 1: %@ Application Codebehind=Global.asax.cs Inherits=FuceFP.Web.Global Language=C# %

    之前为了避免typescript编译出错把项目文件typescripttoolversion节点注释掉了,结果导致项目启动不了.把注释打开就行了. <TypeScriptToolsVersion ...

最新文章

  1. 多屏互动电脑版_MAXHUB无线双频同屏器HDMI连接投影仪手机电视机笔记本电脑投屏器多屏互动 MAXHUB传屏盒子WB01标配2个无线传屏...
  2. 建立自己的git账户并保存资料的重要性
  3. CUDA实践指南(六)
  4. 前端学习(179):表单元素
  5. json和python中字典的区别和联系_Python 中json与字典的关系
  6. 论文阅读课4-Long-tail Relation Extraction via Knowledge Graph Embeddings(GCN,关系抽取,2019,远程监督,少样本不平衡,2注意
  7. EdgeGallery:聚焦 5 大行业场景,MEC 开源平台将 5G 能力拓展到边缘
  8. SpringCloud 入门教程(六): 用声明式REST客户端Feign调用远端HTTP服务
  9. Java笔记-Spring-rabbitmq中设置receiveMessage参数为Message
  10. CUDA 网格级并发-流(1)
  11. MFC中开发ocx控件,html容器收不到ocx的事件Event
  12. 用CSS样式如何制作圆角的详细教程
  13. MongoDB学习笔记~大叔分享批量添加—批量更新—批量删除
  14. Discuz 模板目录
  15. 语音信号处理——视频转换音频(FFmpeg)mp4转wav
  16. 关于孔明先生职称申请报告的回函
  17. gdal调用capi处理乱码问题(c#)
  18. 牛客练习赛43 回顾
  19. logstash读取Elasticsearch数据保存为json,logstash接收log数据写入kafka生产者
  20. leetcode 974. Subarray Sums Divisible by K的解法(统计共同余数)

热门文章

  1. 利用iTextSharp填写中文(中日韩)PDF表单(完整解决方案)
  2. 使用Win Server 2012 R2的IIS创建FTP
  3. spawn-fcgi 启动python 程序失败
  4. dojo 加载自定义module的路径问题
  5. 端口聚合Port-Channel
  6. 2005年2月24日(星期四) 中午,晴+煙 - Central Incubator。
  7. 转载自《读者》--您也吻我一下好吗
  8. Nginx并发数、每秒连接数、下载速度限制,防攻击杀手锏
  9. Nginx反向代理与负载均衡等配置文件示例
  10. Mac下的Docker及Kubernetes(k8s)本地环境搭建与应用部署、管理界面kubernetes-dashboard