【问题标题】:Use of next() method in Use() method in .net Core?在 .net Core 的 Use() 方法中使用 next() 方法?
【发布时间】:2020-03-07 08:20:50
【问题描述】:

如果我在请求管道的 Use() 方法中不调用 next() 方法或 next.Invoke() 会发生什么,它会调用下一个中间件组件吗?

【问题讨论】:

  • 不,请求将不再进行。如果您想拦截请求,这非常有用。

标签: asp.net-core .net-core asp.net-core-2.1 request-pipeline


【解决方案1】:

来自docs,强调我的:

将多个请求委托与 Use 链接在一起。下一个参数代表管道中的下一个委托。 您可以通过不调用下一个参数来使管道短路

还有:

当一个委托没有将请求传递给下一个委托时,这称为短路请求管道。短路通常是可取的,因为它可以避免不必要的工作。例如,静态文件中间件可以通过处理对静态文件的请求并短路管道的其余部分来充当终端中间件。

因此,如果您不调用下一项,管道将停在那里。

【讨论】:

    猜你喜欢
    • 2020-12-27
    • 1970-01-01
    • 1970-01-01
    • 2022-01-27
    • 1970-01-01
    • 2019-07-05
    • 1970-01-01
    • 2019-07-10
    • 2016-02-08
    相关资源
    最近更新 更多