问题标签 [ms-yarp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如何使 yarp 匹配路径不区分大小写?
我的路线是
它不匹配去往 的请求/api/MyEndpoint
。是否可以使其不区分大小写?
asp.net - 如何使用 YARP 在旧应用程序和新应用程序之间切换
我有一个遗留的 Asp.Net Web 表单应用程序,我正在迁移到 .net 5。我正在尝试逐个迁移。我正在使用 Microsoft YARP 作为反向代理 - https://github.com/microsoft/reverse-proxy,它有助于在用户不知情的情况下将旧应用程序的 URL 重新定位到新应用程序。这样第一部分就完成了。
但现在我面临用户在新应用程序中发现关键问题的问题,这变得难以处理。所以我想在页面上实现一个链接/按钮,允许用户根据需要使用旧应用程序或新应用程序。我见过许多允许在其网站的经典版本和新版本之间切换的网站。但不确定,我应该如何使用 YARP 来解决这个问题。正如我所见,YARP 配置适用于所有用户,它是一种静态的。不过可以重新加载。就我而言,用户 A 可能想要使用旧应用程序中的页面,而用户 B 可能想要使用新应用程序中的页面。
我在他们的网站上读到我可以编写一个中间件来处理自定义逻辑,但不知道如何处理这个问题。任何指导都会很有帮助。
asp.net - 路由“0”需要指定主机或路径。将路径设置为“/{**catchall}”以匹配所有请求
我正在尝试在我的网关应用程序中使用 Yarp 来路由我的应用程序。然而,一旦它开始,我得到“路由'0'需要指定主机或路径。将路径设置为'/{**catchall}'以匹配所有请求。”
这是我的 AppSettings 文件:
配置服务:
我得到了这个: System.InvalidOperationException
那么知道如何解决这个问题吗?
c# - 从 Blazor WebAssembly 应用程序使用 gRpc Web 客户端时,Duende BFF Yarn 不传递令牌
我正在使用 ASP.NET Core 6 构建一个 Web 应用程序。
我有:
- Frontend.Client - 带有 UI 的 Blazor WebAssembly
- Frontend.Server - ASP.NET Core,托管 Blazor WebAssembly
- Web Api - 远程 REST 服务
- gRpc 服务- 远程 gRpc 服务
- Identity Provider - 一个使用 Duende.Bff.Yarp 的 Duende 项目
我的 Frontend.Client 配置为调用它自己的 BFF(Frontend.Server),而服务器使用Duende.Bff.YARP将调用转发到 REST 和 gRpc 服务。
对 REST 服务的调用按预期工作:客户端按照文档自动传递令牌。
我的问题是对 gRpc 的调用,它似乎没有使用正确的 HttpClient 和 AntiForgeryToken 和访问令牌。
我知道我在某处遗漏了一些设置,但我找不到任何关于如何将 Duende 与 gRpcWebClient 一起使用的示例。
我的Frontend.Client配置包含:
我的Frontend.Server配置包含:
用于读取配置的 appsettings.json 文件包含:
当我的客户端调用 gRpc 时,我收到 401 Unauthorized 响应和 Duende.Bff 日志表明 AntiForgery 检查未通过,实际上该请求没有带有 X-CSRF 1 的标头(而对 REST Api 的调用确实)。这表明 gRpc 客户端没有使用 Duende 使用的 HTTP 客户端。
如何将我的 gRpc 客户端连接到 Duende?
注意:在引入身份验证/授权位之前,我直接使用 YARP 并且对 gRpc 的调用工作正常。当我添加 Duende 时,它就坏了。