ASP.NET Web API 2 消息处理管道
Ø 前言
ASP.NET 的应用程序都会有自己的消息处理管道和生命周期,比如:ASP.NET Web 应用程序(Web Form)、ASP.NET MVC,还有本文将讨论的 ASP.NET Web API 2。消息处理管道是一个复杂的过程,导致于很多人对这块半知半解,包括本人也是。本文将从以下几点展开研究,不对之处,欢迎指出。
1. 为什么要了解消息处理管道或生命周期
我们知道,Web 应用程序都是发布到 IIS(服务器)上,提供给其他程序访问。而每个请求“进来”,我们的 IIS 帮我们做了哪些事情呢?这就涉及到消息处理管道了,每个一个请求进来,都会执行相同的生命周期。而有些消息管道是我们可以写程序干预的,比如:DelegatingHandler(委托处理程序)、和一系列的过滤器等等。这样我们就可以编写自己的处理程序,来完成我们制定的个性化需求了。
2. 首先, 我们来看下 ASP.NET Web API 2 的生命周期(来至于:https://www.asp.net/media/4071077/aspnet-web-api-poster.pdf)

1) 首先程序初始化时,自动创建了一个 HttpServer 对象,该对象用于配置整个Web 环境所需的配置,例如:委托处理程序、路由配置、过滤器、媒体类型格式化程序等等,该类继承于 System.Net.Http.DelegatingHandler。也属于委托处理程序中的一种,是比较特殊的处理程序。
1. 委托处理程序:它是每个请求必须经历的消息通道,可以指定多个消息处理程序,从而形成消息处理程序委托链,当请求到来时最先执行消息处理程序。委托处理程序继承于 System.Net.Http.HttpMessageHandler 类,该类是消息处理程序的基类。
2. 路由配置:用于配置 HTTP 请求的路由格式,由 System.Web.Http.Dispatcher.HttpRoutingDispatcher 处理程序来找到请求的 Controller 和 Action,同样继承于 System.Net.Http.HttpMessageHandler 类。
3. 过滤器:也是我们会经常接触的,大致分为四种类型:身份验证过滤器、授权过滤器、动作过滤器、以及异常过滤器。
4. 媒体类型格式化程序:用于配置请求和响应媒体类型格式的相关设置,例如:Json、XML 格式的设置等。
待完善…
ASP.NET Web API 2 消息处理管道的更多相关文章
- ASP.NET Web API的消息处理管道: Self Host下的消息处理管道[上篇]
ASP.NET Web API的消息处理管道: Self Host下的消息处理管道[上篇] ASP.NET Web API服务端框架核心是一个独立于具体寄宿环境的消息处理管道,它不关心请求消息来源于何 ...
- ASP.NET Web API的消息处理管道: HttpRoutingDispatcher
ASP.NET Web API的消息处理管道: HttpRoutingDispatcher 认情况下,作为消息处理管道“龙头”的HttpServer的Dispatcher属性返回一个HttpRouti ...
- ASP.NET Web API的消息处理管道:"龙头"HttpServer
ASP.NET Web API的消息处理管道:"龙头"HttpServer 一般来说,对于构成ASP.NET Web API消息处理管道的所有HttpMessageHandler来 ...
- ASP.NET Web API标准的“管道式”设计
ASP.NET Web API的核心框架是一个消息处理管道,这个管道是一组HttpMessageHandler的有序组合.这是一个双工管道,请求消息从一端流入并依次经过所有HttpMessageHan ...
- ASP.NET Web API的安全管道
本篇体验ASP.NET Web API的安全管道.这里的安全管道是指在请求和响应过程中所经历的各个组件或进程,比如有IIS,HttpModule,OWIN,WebAPI,等等.在这个管道中大致分两个阶 ...
- Web API之消息处理管道
Web API之消息处理管道 前言 MVC有一套请求处理的机制,当然Web API也有自己的一套消息处理管道,该消息处理管道贯穿始终都是通过HttpMessageHandler来完成.我们知道请求信息 ...
- Web APi之消息处理管道(五)
前言 MVC有一套请求处理的机制,当然Web API也有自己的一套消息处理管道,该消息处理管道贯穿始终都是通过HttpMessageHandler来完成.我们知道请求信息存在 RequestMessa ...
- ASP.NET Web API标准的“管道式”设计
详见:http://www.cnblogs.com/artech/p/asp-net-web-api-pipeline.html http://www.codeproject.com/Articles ...
- ASP.NET Web API消息处理管道:Self Host下的消息处理管道[下篇]
ASP.NET Web API消息处理管道:Self Host下的消息处理管道[下篇] 我们知道ASP.NET Web API借助于HttpSelfHostServer以Self Host模式寄宿于当 ...
随机推荐
- [luogu5253]丢番图【数学】
传送门 [传送门] 题目大意 求\(\frac{1}{x}+\frac{1}{y}=\frac{1}{n}\)有多少组不同的解. 分析 将式子转化成\((n-x)(n-y)=n^2\)的形式. 那么很 ...
- BZOJ3456 城市规划 【多项式求ln】
题目链接 BZOJ3456 题解 真是一道经典好题,至此已经写了分治\(NTT\),多项式求逆,多项式求\(ln\)三种写法 我们发现我们要求的是大小为\(n\)无向联通图的数量 而\(n\)个点的无 ...
- 「HAOI2018」染色 解题报告
「HAOI2018」染色 是个套路题.. 考虑容斥 则恰好为\(k\)个颜色恰好为\(c\)次的贡献为 \[ \binom{m}{k}\sum_{i\ge k}(-1)^{i-k}\binom{m-k ...
- prufer序列学习笔记
prufer序列是一个定义在无根树上的东西. 构造方法是:每次选一个编号最小的叶子结点,把他的父亲的编号加入到序列的最后.然后删掉这个叶节点.直到最后只剩下两个节点,此时得到的序列就是prufer序列 ...
- centos7破解安装jira6.3.6(含Agile)
应用场景:JIRA是Atlassian公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪.客户服务.需求收集.流程审批.任务跟踪.项目跟踪 和敏捷管理等工作领域. 安装环境:centos7.3虚拟机 ...
- Spring Cloud下基于OAUTH2认证授权的实现
GitHub(spring -boot 2.0.0):https://github.com/bigben0123/uaa-zuul 示例(spring -boot 2.0.0): https://gi ...
- win32-api: 让 static 控件中的水平横行,垂直居中。
CreateWindowEx(....., SS_CENTER | SS_CENTERIMAGE); SS_CENTER 能让文字水平居中. SS_CENTERIMAGE 能让文字垂直居中. htt ...
- Mock4 moco框架中如何加入cookies
新建一个 startupWithCookies.json,因为cookies也是请求当中带的,所以,要写在request里面,cookies是k-v的形式,就拿登陆来说吧,登陆以后会的cookies, ...
- poj 2229 Sumsets(记录结果再利用的DP)
传送门 https://www.cnblogs.com/violet-acmer/p/9852294.html 题意: 将一个数N分解为2的幂之和共有几种分法? 题解: 定义dp[ i ]为数 i 的 ...
- C/S,B/S的应用的区别
C/S和B/S都是软件架构方式: C/S(Client/Server) :客户端/服务器结构,其中客户端和服务器端都是独立的计算机,客户端是面向用户的应用程序或者是接口,服务器端通常采用高性能的PC. ...