微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

找不到上下文的DownstreamContext

如何解决找不到上下文的DownstreamContext

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

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

{
            //PreQueryStringBuilderMiddleware occurs after authorization
            PreQueryStringBuilderMiddleware = async (ctx,next) =>
            {
                var upstreamRoute = ctx.DownstreamReRoute.UpstreamPathTemplate;
                Log.information($"{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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。