You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置gRPC并在Postman中测试HealthCheck?

提问:Postman调用gRPC HealthCheck服务报错

我刚接触gRPC,正在研究HealthCheck机制来确保服务器正常运行并能接收请求。已经在服务器的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");
});

我认为这样已经配置好可调用的默认HealthCheck服务,也清楚gRPC客户端的调用方式,但不知道怎么在Postman里调用——gRPC请求需要protobuf文件(我之前没有)、启用服务器反射(没开)或者创建并使用protobuf API。

更新
我按照官方健康检查规范创建了符合要求的proto文件,其中引用的grpc.health.v1.health/Check和应用构建器中的配置匹配,但在Postman调用时出现错误:

收到由客户端内部错误触发的RST_STREAM,错误码2:协议错误


解决建议

1. 核对Postman的gRPC请求配置

  • 切换请求类型为gRPC,不要用HTTP/REST模式
  • 填写正确的服务器地址(例如http://localhost:5000),HTTPS环境要对应调整地址前缀
  • 在「Service definition」中上传正确的健康检查proto文件,标准内容如下:
    syntax = "proto3";
    
    package grpc.health.v1;
    
    message HealthCheckRequest {
      string service = 1;
    }
    
    message HealthCheckResponse {
      enum ServingStatus {
        UNKNOWN = 0;
        SERVING = 1;
        NOT_SERVING = 2;
        SERVICE_UNKNOWN = 3;
      }
      ServingStatus status = 1;
    }
    
    service Health {
      rpc Check(HealthCheckRequest) returns (HealthCheckResponse);
      rpc Watch(HealthCheckRequest) returns (stream HealthCheckResponse);
    }
    

2. 适配gRPC Web配置

你启用了GrpcWeb,但Postman默认gRPC调用用的是HTTP/2纯gRPC协议,和GrpcWeb(基于HTTP/1.1)不兼容,二选一调整:

  • 在Postman请求的「Advanced」设置里开启gRPC Web选项
  • 暂时移除服务器端的UseGrpcWeb配置,用纯HTTP/2协议测试服务可用性

3. 确保服务器支持HTTP/2

如果用Kestrel服务器,需显式配置HTTP/2支持:

var builder = WebApplication.CreateBuilder(args);
builder.WebHost.ConfigureKestrel(options =>
{
    options.ListenAnyIP(5000, o => o.Protocols = HttpProtocols.Http2);
});

4. 检查请求参数正确性

调用Check方法时,service参数可传空字符串(检查整个服务器状态)或你配置的"Check"服务名,不要留空或传错误名称


内容的提问来源于stack exchange,提问作者sr28

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 06:20:53