net framework MVC通信管道图解

1 篇文章 0 订阅

net core 和 net mvc 的区别:

net mvc 与 net core mvc webapi 管道通信模式不同, net mvc 是19个管道事件全部注册挂载上去,不考虑性能,本着给开发者方便的思想来开发。 但net core 本着解耦性能的考虑,故net core是自注册机制 , 比如 我让我的net code 项目支持 session 和 cookie, 就 必须 对 IServiceCollection 进行  AddSession(); 和 管道通信方法Configure中的app.UseSession(); 调用对应的扩展方法 才允许使用。 

net mvc 各自模块的作用:

httpModules  //http模块

httpHandlers //http处理程序

net mvc 的19个自注册事件

1 httpModule HTTP模块(UrlRoutingModule)

2 mvchandler mvc处理程序(MvcHandler)
/*
1.BeginRequest  开始处理请求  
2.AuthenticateRequest 授权验证请求,获取用户授权信息
3.PostAuthenticateRequest 获取成功
4.AunthorizeRequest 授权,一般来检查用户是否获得权限
5.PostAuthorizeRequest 获得授权
6.ResolveRequestCache 获取页面缓存结果(如果没有则执行)
7.PostResolveRequestCache 已获取缓存
8.PostMapRequestHandler 创建页面对象
9.AcquireRequestState 获取Session -- 先判断当前页面对象是否实现了IRequiresSessionState接口,如果实现了,则从浏览器发来的请求报文头中获得SessionId,并到服务器的 Session池中获得对应的Session对象,最后赋值给 HttpContext的Session属性。
10.PostAcquireRequestState 获得Session
11.PreRequestHandlerExecute 准备执行页面对象
×执行页面对象的ProcessRequest方法(1.ashx,1.aspx),如果请求的是1.aspx,则会运行页面生命周期
12.PostRequestHandlerExecute 执行完页面对象了
13.ReleaseRequestState 释放请求状态
14.PostReleaseRequestState 已释放请求状态
15.UpdateReuqestCache 更新缓存
16.PostUpdateRequestCache 已更新缓存
17.LogRequest 日志记录
18.PostLogRequest 已完成日志
19.EndRequest 完成
*/

mvc 处理程序 解析流程:

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值