MVC框架下 global.asax 页面的事件

这些事件被触发的 顺序是:

Application_BeginRequest

Application_AuthenticateRequest

Application_AuthorizeRequest

Application_ResolveRequestCache

Application_AcquireRequestState

Application_PreRequestHandlerExecute

Application_PreSendRequestHeaders

Application_PreSendRequestContent

<<执行代码>>

Application_PostRequestHandlerExecute

Application_ReleaseRequestState

Application_UpdateRequestCache

Application_EndRequest

==========================================

global.asax 所有事件

以下是页面请求触发的所有事件,s Application_BeginRequest 当ASP.NET开始处理每个请求时触发。在这个事件处理中的代码将在页面或者服务处理请求之前执行。

Application_AuthenticateRequest 在验证请求之前触发。(正如第12章介绍的,验证是确认用户就是他所说的那个人的过程)在这个事件处理程序的代码中允许实现自定义安全管道。

Application_AuthorizeRequest 在为请求授权之前触发。(授权是确定是否请求用户具有访问资源的权限的过程,在 第12章已经介绍过)在这个事件处理程序的代码中允许实现自定义安全管道。

Application_ResolveRequestCache 在ASP.NET确定是否应该生成新的输出,或者由缓存填充前触发。无论何种情况,都将执行该事件处理程序中的代码。

Application_AcquireRequestState 在获取会话状态之前执行。

Application_PreRequestHandlerExecute 在将请求发送到服务于请求的处理程序对象之前触发。当事件触发后,页面将由HTTP处理程序处理请求。

Application_PostRequestHandlerExecute 当HTTP处理程序与页面请求一起完成时触发。此时,Response对象将获得由客户端返回的数据。

Application_ReleaseRequestState 当释放和更新试图状态时触发。

Application_UpdateRequestCache 如果输出被缓存,那么缓存更新时将触发。

Application_EndRequest 当请求结束时执行。

Application_PreSendRequestHeaders 在向客户端发送HTTP头之前触发。如果启用响应缓存,这意味着直到所有数据都准备好(默认条件),都不会发送任何数据。该事件总是在Application_EndRequest事件之后。

如果禁用响应缓存,那么无论何时将数据发送给客户端,都将触发该事件。响应控制由Page指令的一个属性,或者Web服务的WebMethod属性控制。

Application_PreSendRequestContent 向客户端发送HTTP内容之前触发。和Application_PreSendRequestHeaders事件一样,Application_PreSendRequestContent事件能否被触发取决于响应缓存是否可用。

以下列举应用程序事件,它们在特定条件下触发:

Application_Start 当应用程序启动时触发。当首次请求应用程序虚拟目录中的任何页面时,将启动应用程序,同时如果应用程序已经运行,则不触发该事件。

Application_End 应用程序结束时触发。无论何时修改了配置文件(global.asax、global.asax.cs、 global.asax.vb或者web.config),或者服务器崩溃或者重启,应用程序都将结束。通常在该事件处理程序中执行清除功能的代码,例如关闭数据库连接。

Session_Start 每个会话开始时触发,这是放置具体会话代码的地方。

Session_End 会话结束时触发。它为保存存储在会话中的任何数据提供了机会。

Application_Disposed 当CLR从内存中移除应用程序时触发。

Application_Error 无论在应用程序中何时何处发生未处理的错误都将触发。它提供了一个实现通用应用程序错误处理的好机会。

使用try...catch语句块能够在代码中处理特定错误,也可以使用Page指令的ErrorPage属性来捕获页面级错误。使用这些方式处理任何错误都不会触发Application_Error事件。

MVC中 global.asax的更多相关文章

  1. ASP.NET中Global.asax 文件是什么?

    Global.asax 文件,有时候叫做 ASP.NET 应用程序文件,提供了一种在一个中心位置响应应用程序级或模块级事件的方法.你可以使用这个文件实现应用程序安全性以及其它一些任务.下面让我们详细看 ...

  2. 关于ASP.NET 中 Global.asax 文件的后台事件处理程序

    Global.asax.cs中的事件处理程序,像 Application_Start.Application_Error 等,这些名称和事件都是怎么来的呢? MSDN上的这篇文章描述了相关的内容: h ...

  3. MVC之Global.asax解析

    大家看到上面的代码了,Application_Start大家都知道这是应用程序启动入口. AreaRegistration.RegisterAllAreas是什么呢? 我们先看看微软官方的注解: 我们 ...

  4. nopCommerce 3.9 大波浪系列 之 global.asax

    一.nop的global.asax文件 nop3.9基于ASP.NET MVC 5框架开发,而ASP.NET MVC中global.asax文件包含全局应用程序事件的事件处理程序,它响应应用程序级别和 ...

  5. ASP.NET MVC 中应用Windows服务以及Webservice服务开发分布式定时器

    ASP.NET MVC 中应用Windows服务以及Webservice服务开发分布式定时器一:闲谈一下:1.现在任务跟踪管理系统已经开发快要结束了,抽一点时间来写一下,想一想自己就有成就感啊!!  ...

  6. 在ASP.Net MVC 中,如何在Global.asax中配置一个指向Area内部的默认Route

    ASP.Net MVC 中配置Route的时候可以设置一个默认的Route. 比如我要在输入http://localhost的时候默认进入http://localhost/home/index.可以在 ...

  7. ASP.NET MVC中注册Global.asax的Application_Error事件处理全局异常

    在ASP.NET MVC中,通过应用程序生命周期中的Application_Error事件可以捕获到网站引发的所有未处理异常.本文作为学习笔记,记录了使用Global.asax文件的Applicati ...

  8. ASP.NET MVC中的Global.asax文件

    1.global.asax文件概述 global.asax这个文件包含全局应用程序事件的事件处理程序.它响应应用程序级别和会话级别事件的代码. 运行时, Global.asax 将被编译成一个动态生成 ...

  9. 如何在Global.asax中判断是否是ajax请求

    今天在一个应用场景中需要在Global.asax中判断一个请求是否是ajax请求,而在ASP.NET MVC中已经提供了一个现成的扩展方法IsAjaxRequest: namespace System ...

随机推荐

  1. 第一个简单APP设计图

    以下是我画出来的最简单的手机UI设计图哟,以后慢慢积累吧.... 其实使用很简单,很多控件都有,直接使用就好....还是多动手吧,相信自己之后能很好的掌握这个的使用哟!!!!!!

  2. LeetCode.1103-向人们分发糖果(Distribute Candies to People)

    这是小川的第393次更新,第425篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第256题(顺位题号是1103).我们通过以下方式向一排n = num_people个人分 ...

  3. 面试题 :10亿url去重只给4G内存

    我能想到的有以下几种: 用语言判断去重,ex表格去重,数据库去重,文件名字去重, 有人说:10亿url ex表放不下!! 可以用树和折半的思想将10亿url,变成单元最小化的树,然后用ex表去重 ex ...

  4. 给Date的构造函数添加属性和方法

    let d = Date.prototype; Object.defineProperties(d, { 'year': { get: function () { return this.getFul ...

  5. WinForm笔记1:TextBox编辑时和DataGridView 单元格编辑时 的事件及其顺序

    TextBox 编辑框 When you change the focus by using the mouse or by calling the Focus method, focus event ...

  6. 小记---------破解idea2018.3.6 转载

      一.进入idea官网选择想要下载的版本 官网版本选择页面: https://www.jetbrains.com/idea/download/other.html IntelliJ IDEA 分为两 ...

  7. C++多线程基础学习笔记(四)

    一.创建多个子线程 前面三章讲的例子都是只有一个子线程和主线程,然而实际中有多个子线程.那么下面介绍如何创建多个子线程. #include <iostream> #include < ...

  8. mysql索引失效的情况

    1.WHERE字句的查询条件里有不等于号(如:WHERE column!=...),MYSQL将无法使用索引: 2.WHERE字句的查询条件里使用了函数的列(如:WHERE DAY(column)=. ...

  9. 搞懂Redis复制原理

    前言 与大多数db一样,Redis也提供了复制机制,以满足故障恢复和负载均衡等需求.复制也是Redis高可用的基础,哨兵和集群都是建立在复制基础上实现高可用的.复制不仅提高了整个系统的容错能力,还可以 ...

  10. 剑指offer-和为S的连续正数序列-知识迁移能力-python

    题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数).没多久,他 ...