【发布时间】:2021-12-16 21:03:19
【问题描述】:
我有一个 Blazor WASM 应用程序,该应用程序应托管在后端中,该后端是使用 ASP.NET 上的 gRPC 和 .NET 5.0 实现的。当我尝试调试 WASM 应用程序时,一旦调试浏览器启动,我就会收到此错误:
fail: Microsoft.AspNetCore.Server.Kestrel[0]
HTTP/2 over TLS was not negotiated on an HTTP/2-only endpoint.
所有开发证书均已安装并受信任,并且使用wss:// 方案建立了 websocket 连接。所以从我的角度来看,TLS 协商应该会成功。
我已经发现我可以通过将 Kestrel 端点设置更改为使用Http1AndHttp2 来解决这个问题,然后问题就变成了从前端到后端的 gRPC 连接由于降级到 Http/1 而失败.
所以我的问题是:在托管站点上使用 Http/2 服务器时,是否有任何选项可以调试 Blazot WASM? 如果这不可能:我能否以某种方式确定 gRPC 端点是使用 HTTP/2 传递的,而调试端点是通过 HTTP/1.1 传递的?
【问题讨论】:
-
GitHub上有一个关于该主题的问题:github.com/dotnet/aspnetcore/issues/38131
标签: asp.net asp.net-core blazor grpc http2