我是gRPC的新手,一直在阅读关于健康检查的文章,以确保服务器已经启动并准备好接收请求。为此,我在服务器Program.cs中得到了这个:
services.AddGrpc();
services.AddGrpcHealthChecks().AddCheck("Check", () => HealthCheckResult.Healthy());
services.Configure<HealthCheckPublisherOptions>(options => options.Delay = TimeSpan.Zero);
对于应用程序构建器,我添加以下内容:
app.UseRouting();
app.UseGrpcWeb(new GrpcWebOptions { DefaultEnabled = true });
app.UseEndpoints(endpoints =>
{
endpoints.MapGrpcHealthChecksService();
endpoints.MapGet("/", () => "Some text");
});
我假设这实际上是添加了一个可以调用的默认Health Check服务。我可以看到客户端如何调用它,通过设置一个通道并使用url,但如何从Postman调用它呢?gRPC请求需要一个protobuf文件(没有1),要启用的服务器反射(没有)或创建并使用protobuf API。
更新
我试着创建一个proto文件,它应该满足here服务的要求,它似乎与我在app builder中看到的设置相匹配,因为它们都引用了grpc.health.v1.health/Check。但是,当从postman调用它时,我得到了这个错误:
“收到由内部客户端错误触发的代码为2的RST_STREAM:协议错误”
1条答案
按热度按时间tag5nh1u1#
看起来这是一个协议问题。我需要在 Postman 能够连接之前正确地配置它。