Asp.Net MVC 的19个管道事件

  httpApplication调用ProcessRequest方法,内部执行19个管道事件,如下

  • BeginRequest  开始处理请求
  • AuthenticateRequest 授权验证请求开始,获取用户授权信息
  • PostAuthenticateRequest 获取成功
  • AunthorizeRequest  授权,一般用来检查用户是否获得权限
  • PostAuthorizeRequest  获得授权
  • ResolveRequestCache 获取页面缓存结果(如果没有则执行)
  • PostResolveRequestCache 已缓存
  • PostMapRequestHandler 创建页面对象
  • AcquireRequestState 获取Session --先判断当前页面是否实现了IRequiresSessionState接口,如果实现了,就从浏览器发来的请求报文中获取SessionId,并到服务器的Session池中获得对应的Session对象,最后赋值给HttpContext的Session属性。
  • PostAcquireRequestState 获得Session
  • PreRequestHandlerExecute 准备执行页面对象,执行页面的ProcessRequest方法(1.aspx,1.ashx)。请求如果是1.aspx就会执行页面的声明周期
  • PostRequestHandlerExecute 执行完页面对象了,
  • ReleaseRequestState 已释放请求状态
  • UpdateRequestCache 更新缓存
  • PsotUpdateRequestCache 已更新缓存
  • LogRequest 日志记录
  • PsotLogRequest 已完成日志
  • EndRequest 完成

原文地址:https://www.cnblogs.com/zhangmm96/p/11421118.html

时间: 2024-10-23 20:05:34

Asp.Net MVC 的19个管道事件的相关文章

ASP.NET MVC请求处理管道生命周期的19个关键环节(1-6)

ASP.NET和ASP.NET MVC的HttpApplication请求处理管道有共同的部分和不同之处,本系列将体验ASP.NET MVC请求处理管道生命周期的19个关键环节. ①以IIS6.0为例,首先由w3wp.exe维护着一个工作进程 ②如果是第一次加载,由Aspnet_isapi.dll加载.NET运行时 ③一个工作进程里有一个应用程序池,其中可以承载多个应用程序域AppDomain ④HTTP.SYS接收请求,通过应用程序域工厂AppDomainFactory创建应用程序域AppDo

Asp.net mvc 框架揭秘之Asp.net +Mvc简介

1.什么是MVC? 介绍MVC之前说一下自治视图(Autonomous View):将UI界面的呈现.交互动作的捕捉响应.逻辑处理流程.数据存储等糅合在一起(如WebForm),我们将这种设计模式成为自治视图 自治视图的弊端: 视图和逻辑糅合在一起,不利于逻辑的复用 不利于对UI组件的调试 MVC是基于关注点分离的方针的架构模式,它将一个人机交互用户的功能分为Model.View.Controller三部分,它们各自具有自己的职责: Model:是对用于状态和业务功能的封装,是同时包含行为和数据

MVC学习笔记---MVC生命周期及管道

ASP.NET和ASP.NET MVC的HttpApplication请求处理管道有共同的部分和不同之处,本系列将体验ASP.NET MVC请求处理管道生命周期的19个关键环节. ①以IIS6.0为例,首先由w3wp.exe维护着一个工作进程 ②如果是第一次加载,由Aspnet_isapi.dll加载.NET运行时 ③一个工作进程里有一个应用程序池,其中可以承载多个应用程序域AppDomain ④HTTP.SYS接收请求,通过应用程序域工厂AppDomainFactory创建应用程序域AppDo

在ASP.Net MVC 中如何实现跨越Session的分布式TempData

Hi,guys!Long time no see! 1.问题的引出 我相信大家在项目中都使用过TempData,TempData是一个字典集合,一般用于两个请求之间临时缓存数据或者页面之间传递消息.也都知道TempData是用Session来实现的,既然是用Session来实现的,那么模式就是线程模式,这样的Session是没法用到分布式系统中的,那么在多台机器上部署,怎么做到Session在多台机器中共存,这就涉及到分布式存储.那该如何实现TempData的分布式存储?在讲如何实现时,先给大家

ASP.NET MVC请求处理管道生命周期的19个关键环节(7-12)

转自http://www.cnblogs.com/darrenji/p/3795676.html 在上一篇"ASP.NET MVC请求处理管道生命周期的19个关键环节(1-6) ",体验了1-6关键环节,本篇继续. ⑦根据IsapiWorkerRequest对象,HttpRuntime创建HttpContext对象 ⑧HttpApplicationFactory创建新的或者从HttpApplication池获取现有的.可用的HttpApplication对象 HttpApplicati

ASP.NET MVC请求处理管道生命周期的19个关键环节(13-19)

转自:http://www.cnblogs.com/darrenji/p/3795690.html 在上一篇"ASP.NET MVC请求处理管道生命周期的19个关键环节(7-12) ",体验了7-12关键环节,本篇继续. ⒀当请求到达UrlRoutingModule的时候,UrlRoutingModule取出请求中的Controller.Action等RouteData信息,与路由表中的所有规则进行匹配,若匹配,把请求交给IRouteHandler,即MVCRouteHandler M

ASP.NET 生命周期及管道事件

Client(发送报文:请求行+请求头+空行+请求体) <------ Http 协议 ------> Server,由 Http.sys 监听 Http 请求 -> WAS+Metabase(通过URL确定WebApp工作进程) -> W3WP.exe(一个应用程序池,加载Aspnet_IsAPI.dll) ->AppDomainFactory(构造 ApplicationManager)->ISAPIApplicationHost+ISAPIRuntime(由App

请求管道与19个标准事件

1.BeginRequest ASP.NET开始处理对的第一个事件,表示处理的开始. 2.AuthenticateRequest 验证请求,一般用来去请求的用户信息 3.PostAuthenticateRequest 已经获取请求的用户信息 4.AuthorizeRequest 授权,一般用来检查用户的请求是否获取权限 5.PostAuthorizeRequest 用户请求已经得到授权 7.PostResolveRequestCache 已经完成缓存的获取工作 8.PostMappRequest

ASP.NET机制详细的管道事件流程

最近回顾了一些新知识, 本人简单介绍下ASP .NET机制,:在这里与大家一起分享一下: 第一.浏览器向服务器发送请求. 1)浏览器向IIS服务器发送请求网址的域名,根据HTTP协议封装成请求报文,通过DNS解析请求的IP地址,接着通过socket与IIS通讯. 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Net; 5 using System.Net.Socket