找不到上下文的DownstreamContext

问题描述

我正在尝试添加自定义中间件以向查询添加参数。

根据一些在线搜索,您可以执行以下操作:

{
            //PreQueryStringBuilderMiddleware occurs after authorization
            PreQueryStringBuilderMiddleware = async (ctx,next) =>
            {
                var upstreamRoute = ctx.DownstreamReRoute.UpstreamPathTemplate;
                Log.@R_386_4045@ion($"{upstreamRoute}");
                await next.Invoke();
            }
        };

See this answer

但是对我来说,它说HttpContext不包含DownstreamReRoute的定义。
有什么我想念的东西吗?或者已经改变了?

解决方法

好吧,事实证明这确实发生了变化,在早期版本中仍然有效。但是从我的阅读来看,奥西洛特似乎已经死了。

,
var upstreamRoute = ctx.Items.DownstreamRoute().UpstreamPathTemplate

使用上面的代码代替 var upstreamRoute = ctx.DownstreamReRoute.UpstreamPathTemplate;

此类更改是在 15.0.6 和 16.0.0 Ocelot 版本之间完成的。 有关详细信息,您可以在 github 上查看它们:https://github.com/ThreeMammals/Ocelot/compare/15.0.6...16.0.0