问题标签 [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.

0 投票
1 回答
205 浏览

c# - 如何使 yarp 匹配路径不区分大小写?

我的路线是

它不匹配去往 的请求/api/MyEndpoint。是否可以使其不区分大小写?

0 投票
0 回答
78 浏览

asp.net - 如何使用 YARP 在旧应用程序和新应用程序之间切换

我有一个遗留的 Asp.Net Web 表单应用程序,我正在迁移到 .net 5。我正在尝试逐个迁移。我正在使用 Microsoft YARP 作为反向代理 - https://github.com/microsoft/reverse-proxy,它有助于在用户不知情的情况下将旧应用程序的 URL 重新定位到新应用程序。这样第一部分就完成了。

但现在我面临用户在新应用程序中发现关键问题的问题,这变得难以处理。所以我想在页面上实现一个链接/按钮,允许用户根据需要使用旧应用程序或新应用程序。我见过许多允许在其网站的经典版本和新版本之间切换的网站。但不确定,我应该如何使用 YARP 来解决这个问题。正如我所见,YARP 配置适用于所有用户,它是一种静态的。不过可以重新加载。就我而言,用户 A 可能想要使用旧应用程序中的页面,而用户 B 可能想要使用新应用程序中的页面。

我在他们的网站上读到我可以编写一个中间件来处理自定义逻辑,但不知道如何处理这个问题。任何指导都会很有帮助。

0 投票
0 回答
150 浏览

asp.net-core - 从 YARP 代理服务器访问时,Swagger 显示“无法加载 API 定义”错误

由于不再维护 ocelot,我决定将 YARP 作为我的 API 网关,但是当我通过它访问我的一个端点时,它给了我这个愚蠢的错误:

使用上面的配置时,我收到以下错误: 在此处输入图像描述

但是当我将路径从 更改为 时"client-service/{**remainder}""/{**remainder}"一切正常!关于这个错误的根源有什么建议吗?

更新:这是 program.cs :

0 投票
1 回答
63 浏览

asp.net - 路由“0”需要指定主机或路径。将路径设置为“/{**catchall}”以匹配所有请求

我正在尝试在我的网关应用程序中使用 Yarp 来路由我的应用程序。然而,一旦它开始,我得到“路由'0'需要指定主机或路径。将路径设置为'/{**catchall}'以匹配所有请求。”

这是我的 AppSettings 文件:

配置服务:

我得到了这个: System.InvalidOperationException

那么知道如何解决这个问题吗?

0 投票
1 回答
36 浏览

c# - 从 Blazor WebAssembly 应用程序使用 gRpc Web 客户端时,Duende BFF Yarn 不传递令牌

我正在使用 ASP.NET Core 6 构建一个 Web 应用程序。
我有:

  1. Frontend.Client - 带有 UI 的 Blazor WebAssembly
  2. Frontend.Server - ASP.NET Core,托管 Blazor WebAssembly
  3. Web Api - 远程 REST 服务
  4. gRpc 服务- 远程 gRpc 服务
  5. 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 时,它​​就坏了。