【问题标题】:OWIN app.use vs app.run vs app.mapOWIN app.use vs app.run vs app.map
【发布时间】:2016-02-22 17:15:12
【问题描述】:

Owin中的app.useapp.runapp.map有什么区别?什么时候用什么?阅读文档并不简单。

【问题讨论】:

    标签: c# asp.net owin katana


    【解决方案1】:

    app.use 将一个中间件插入到管道中,这需要您通过调用 next.Invoke() 来调用下一个中间件。

    app.run 插入一个没有 next 的中间件,所以它只是运行。

    使用app.map,您可以映射在运行时根据请求评估的路径,以仅在请求路径与您映射的模式匹配时运行某些中间件。

    有关详细信息,请参阅 use and runmap 的文档

    【讨论】:

      【解决方案2】:

      在处理请求时,我们使用 IApplicationBuilder。我们有四种方法可用于与请求进行交互:

      • 使用
      • 运行
      • 地图
      • 地图时间

      这些被称为请求代表

      使用

      向应用程序管道添加一个中间件,它可以通过 下一个代表的请求,或者它可以结束请求(短路 请求管道)。是最常用的交互方式 使用中间件。

      地图

      我们使用 Map 将请求路径与另一个中间件连接起来。那 中间件可以使用任何其他提到的请求委托。

      MapWhen

      除了我们可以指定详细信息外,其行为几乎与 Map 相同 通过使用 HttpContext 对象来设置条件。我们可以检查网址, 标头、查询字符串、cookie 等)。

      运行

      生成响应并短路 请求

      也请阅读此article 了解更多信息。

      【讨论】:

        猜你喜欢
        • 2014-08-01
        • 2018-05-08
        • 1970-01-01
        • 2016-12-07
        • 1970-01-01
        • 1970-01-01
        • 2014-08-17
        • 2011-09-18
        • 1970-01-01
        相关资源
        最近更新 更多