Global.asax.cs中的方法(包括自定义方法)的含义
跟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中的方法(包括自定义方法)的含义相关推荐
- 通过在Global.asax文件中配置Application来统计的方法
这是通过在Global.asax文件中配置Application来统计的方法...... using System; using System.Collections; using System.Co ...
- 运行mvc项目报错 %@ Application Codebehind=Global.asax.cs Inherits=NHAPPAPI.MvcApplication Language=C...
当运行项目报如下错误时,检查网站生成目录是否含有特殊符号或空格 <%@ Application Codebehind="Global.asax.cs" Inherits=&q ...
- asp.net页面调用cs中的方法
其中GetArea 在cs文件中的方法, GetArea(string provincecode, string citycode, string areacode) 在页面中可以这样调用cs中的方法 ...
- 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 ...
- %@ Application Codebehind=Global.asax.cs Inherits=XXX.MvcApplication Language=C# %
<%@ Application Codebehind="Global.asax.cs" Inherits="XXX.MvcApplication" Lan ...
- matplotlib.pyplot中add_subplot方法参数111的含义
>引自:http://www.codeweblog.com/matplotlib-pyplot中add_subplot方法参数111的含义/
- %@ Application Codebehind=Global.asax.cs Inherits=FS.JYPEIS.WeCharReserve.WebApiApplication Lan
直接开门见山 错误如下: 在网上找到如下原因: 1.项目命名空间 检查项目命名空间 包括Global.asax.app_start下.controllers等文件夹下,命名空间是否与项目名称一致(至 ...
- C# Global.asax.cs 定时任务
定时执行更新Redis缓存操作 protected void Application_Start(object sender, EventArgs e) {Timer timer = new Time ...
- 行 1: %@ Application Codebehind=Global.asax.cs Inherits=FuceFP.Web.Global Language=C# %
之前为了避免typescript编译出错把项目文件typescripttoolversion节点注释掉了,结果导致项目启动不了.把注释打开就行了. <TypeScriptToolsVersion ...
最新文章
- 多屏互动电脑版_MAXHUB无线双频同屏器HDMI连接投影仪手机电视机笔记本电脑投屏器多屏互动 MAXHUB传屏盒子WB01标配2个无线传屏...
- 建立自己的git账户并保存资料的重要性
- CUDA实践指南(六)
- 前端学习(179):表单元素
- json和python中字典的区别和联系_Python 中json与字典的关系
- 论文阅读课4-Long-tail Relation Extraction via Knowledge Graph Embeddings(GCN,关系抽取,2019,远程监督,少样本不平衡,2注意
- EdgeGallery:聚焦 5 大行业场景,MEC 开源平台将 5G 能力拓展到边缘
- SpringCloud 入门教程(六): 用声明式REST客户端Feign调用远端HTTP服务
- Java笔记-Spring-rabbitmq中设置receiveMessage参数为Message
- CUDA 网格级并发-流(1)
- MFC中开发ocx控件,html容器收不到ocx的事件Event
- 用CSS样式如何制作圆角的详细教程
- MongoDB学习笔记~大叔分享批量添加—批量更新—批量删除
- Discuz 模板目录
- 语音信号处理——视频转换音频(FFmpeg)mp4转wav
- 关于孔明先生职称申请报告的回函
- gdal调用capi处理乱码问题(c#)
- 牛客练习赛43 回顾
- logstash读取Elasticsearch数据保存为json,logstash接收log数据写入kafka生产者
- leetcode 974. Subarray Sums Divisible by K的解法(统计共同余数)
热门文章
- 利用iTextSharp填写中文(中日韩)PDF表单(完整解决方案)
- 使用Win Server 2012 R2的IIS创建FTP
- spawn-fcgi 启动python 程序失败
- dojo 加载自定义module的路径问题
- 端口聚合Port-Channel
- 2005年2月24日(星期四) 中午,晴+煙 - Central Incubator。
- 转载自《读者》--您也吻我一下好吗
- Nginx并发数、每秒连接数、下载速度限制,防攻击杀手锏
- Nginx反向代理与负载均衡等配置文件示例
- Mac下的Docker及Kubernetes(k8s)本地环境搭建与应用部署、管理界面kubernetes-dashboard