• 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

    clip_image002[5]

    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.   媒体类型格式化程序:用于配置请求和响应媒体类型格式的相关设置,例如:JsonXML 格式的设置等。

     

    待完善

  • 相关阅读:
    数据仓库建设随笔(2)
    实战剖析三层架构2:实例代码
    数据仓库建设随笔(1)
    如何正确地死磕一个问题
    finally块中的代码一定会执行吗
    eclipse中任务进度的使用
    如何在单元测试编码实现类的访问器?这里给出一个答案
    SplitContainer.SplitterDistance属性值设置应注意的与FixedPanel有关
    再谈ReportingService报表中数据源类型为存储过程的数据集如何使用多值参数
    工作流加载及本地通信服务常见的异常
  • 原文地址:https://www.cnblogs.com/abeam/p/8688725.html
Copyright © 2020-2023  润新知