这是我的第一个 gRPC 应用程序。我尝试从 .NET 5 gRPC 客户端 (Grpc.Net.Client 2.35.0) 调用服务器流式 RPC 调用,这会在我的本地开发环境中导致以下异常:
Grpc.Core.RpcException:Status(StatusCode =“Internal”,Detail =“启动gRPC调用时出错。HttpRequestException:使用版本策略RequestVersionOrHigher请求HTTP版本2.0,而未启用HTTP/2。”
无论服务器应用程序是否正在运行,都会发生这种情况。这是我用来拨打电话的代码:
using var channel = GrpcChannel.ForAddress(@"http://localhost:5000");
var client = new AlgorithmRunner.AlgorithmRunnerClient(channel);
using var call = client.RunAlgorithm(new RunAlgorithmRequest());
while (await call.ResponseStream.MoveNext())
{
}
Run Code Online (Sandbox Code Playgroud)
我的理解是,.NET 5 gRPC 默认情况下应该启用 HTTP/2:为什么异常表明 HTTP/2 未启用以及如何解决?