相关文章推荐
腹黑的铁板烧  ·  医生必看电影(1)---心灵点滴- 知乎·  1 年前    · 
直爽的毛衣  ·  (实用)简单的百度各平台分享代码_百度分享代 ...·  1 年前    · 
怕考试的木耳  ·  excretion ...·  1 年前    · 
瘦瘦的鸡蛋面  ·  战国竹简获吉尼斯世界纪录认证| 吉尼斯世界纪录·  1 年前    · 
没读研的双杠  ·  火葬场_百度百科·  1 年前    · 
小百科  ›  ASP.NET Web API 补救架构-腾讯云开发者社区-腾讯云
网站架构 api接口 张善友 web技术
听话的跑步鞋
1 年前
作者头像
张善友
0 篇文章

ASP.NET Web API 处理架构

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > 张善友的专栏 > ASP.NET Web API 处理架构

ASP.NET Web API 处理架构

作者头像
张善友
发布 于 2018-01-19 16:45:05
1.3K 0
发布 于 2018-01-19 16:45:05
举报

这篇文章主要是介绍ASP.NET Web API的处理架构:当一个HTTP请求到达直到产生一个请求的过程。 ASP.NET Web API 的处理架构图如下,主要有三层组成:宿主(hosting),消息处理管道(message handler pipeline)和控制器处理(controller handling).

processing-architecture
processing-architecture

宿主(Hosting)

底层负责Web API的宿主,Web API之间的接口和 HTTP 处理引擎。一句话,这一层负责创建 HttpRequestMessage 实例。然后把他们推入到上层的消息处理管道。宿主层也负责消息处理管道返回的 HttpResponseMessage 。目前在ASP.NET Web API里头已经内建的宿主选项有2个:self-hosting 和 web hosting, web hosting也就是宿主在IIS的ASP.net 的处理管道里, Self-hosting 是基于WCF channel stack,的 WCF Message 实例  ,然后转换到 HttpRequestMessage 实例然后把他们推给上层的消息处理管道。 Web-hosting 是基于 IHttpAsyncHandler , 命名为 HttpControllerHandler , 它把 HttpRequest 转换为 HttpRequestMessage .当然Web API hosting 是可扩展的,不仅仅局限于这两个选项,你可以根据自己的需求定制,社区已经有人实现第三方的宿主 Louis DeJardin 在 OWIN created a host 。

消息处理管道(Message Handler Pipeline)

中间层是 message handler pipeline,这一部分就是 WCF Web API 的内容了,通过 HttpServer 类暴露, 他也扩展了 HttpMessageHandler 。这条管道提供了中间层的各种扩展点( addressing cross-cutting concerns )例如: 日志, HTTP 验证, ……

通常在这个管道的顶端是一个特殊的处理器: HttpControllerDispatcher 。这个处理器负责获取和 调用 一个 控制器(Controler) 处理请求。只是在使用基于控制器的编程模型( ApiController 的派生类)的时候才使用 HttpControllerDispatcher ,也可以使用完全不同的模型,只需要把最顶端的这个消息处理器替换掉就可以哦。

控制器处理(Controller Handling)

最后, 上层的控制器处理相关的流程,即:

  • Action selection ;
  • Filter execution;
  • Model binding ;
  • Action invocation ;
  • Response content creation via formatters .

这些处理过程都在 ApiController 实例里头完成, 被 HttpControllerDispatcher 所调用。

上面的整个处理流程还是非常清晰地,本文只是简单的介绍下整个处理流程,后续的文章详细介绍各个部分。

本文参与 腾讯云自媒体分享计划 ,分享自作者个人站点/博客。
原始发表:2012-03-17 , 如有侵权请联系 cloudcommunity@tencent.com 删除
asp.net
api
iis

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!

asp.net
api
iis
评论
登录 后参与评论
0 条评论
热度
最新
登录 后参与评论
关于作者
张善友
深圳市友浩达科技有限公司CTO
0
文章
0
累计阅读量
0
获赞
前往专栏
领券
  • 社区

    • 专栏文章
    • 阅读清单
    • 互动问答
    • 技术沙龙
    • 技术视频
    • 团队主页
    • 腾讯云TI平台
  • 活动

    • 自媒体分享计划
    • 邀请作者入驻
    • 自荐上首页
    • 技术竞赛
  • 资源

    • 技术周刊
    • 社区标签
    • 开发者手册
    • 开发者实验室
  • 关于

    • 社区规范
    • 免责声明
    • 联系我们
    • 友情链接

腾讯云开发者

扫码关注腾讯云开发者

扫码关注腾讯云开发者

领取腾讯云代金券

热门产品

  • 域名注册
  • 云服务器
  • 区块链服务
  • 消息队列
  • 网络加速
  • 云数据库
  • 域名解析
  • 云存储
  • 视频直播

热门推荐

  • 人脸识别
  • 腾讯会议
  • 企业云
  • CDN加速
  • 视频通话
  • 图像分析
  • MySQL 数据库
  • SSL 证书
  • 语音识别

更多推荐

  • 数据安全
  • 负载均衡
  • 短信
  • 文字识别
  • 云点播
  • 商标注册
  • 小程序开发
  • 网站监控
  • 数据迁移

Copyright © 2013 - 2023 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有

深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569

腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287

问题归档 专栏文章 快讯文章归档 关键词归档 开发者手册归档 开发者手册 Section 归档

Copyright © 2013 - 2023 Tencent Cloud.

All Rights Reserved. 腾讯云 版权所有

登录 后参与评论
 
推荐文章
腹黑的铁板烧  ·  医生必看电影(1)---心灵点滴- 知乎
1 年前
直爽的毛衣  ·  (实用)简单的百度各平台分享代码_百度分享代码_zingzingZing的 ...
1 年前
怕考试的木耳  ·  excretion 在英语-中文(繁体)词典中的翻译
1 年前
瘦瘦的鸡蛋面  ·  战国竹简获吉尼斯世界纪录认证| 吉尼斯世界纪录
1 年前
没读研的双杠  ·  火葬场_百度百科
1 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
小百科 - 百科知识指南
© 2024 ~ 沪ICP备11025650号