有没有办法在 ASP.NET 核心中判断任何给定的中间件是否将包含将停止管道的Run()
调用?似乎UseMvc()
是一个大问题,但我什至不确定,我只是继续阅读它需要在最后进行,我认为这是因为它包含对Run()
的调用。
也许有一种方法可以为当前使用的所有中间件生成管道的可视化,显示哪个中间件包含Run()
调用?
除了阅读每个特定中间件的文档之外,没有确定的方法可以判断。
在对我问题的评论中引用它:
- 不仅 Run(),而且 MapWhen() 也会终止进程。此外,任何人都可以创建一个自定义中间件,该中间件不会调用下一个委托,然后导致终止。
- 中间件的职责是确定是否需要调用下一个。除了阅读文档/源代码之外,没有内置的方法来可视化管道。这是因为所有中间件都将在启动时构建到单个最终委托中。当有传入消息时,最终委托将用于处理请求。作为一名程序员,我们知道中间件将做什么,我们知道它分支的时间,我们知道它终止的时间,那是因为我们编写了代码。但是程序在实际运行之前不会知道它,因为最后一个委托是在启动时构建的。