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

在同一服务部署Web API与gRPC时的端口403错误排查

Web API与gRPC共存时5000端口403错误的解决方法

问题根源是Kestrel配置未明确监听5000端口,添加gRPC后默认端点配置被覆盖,导致原本预期承载Web API的5000端口无法正常响应。按以下方式调整配置即可解决:

修正后的Kestrel配置

public static void BootstrapGrpc(this WebApplicationBuilder builder)
{
    builder.WebHost.ConfigureKestrel(options =>
    {
        var http2 = options.Limits.Http2;
        http2.InitialConnectionWindowSize = 1024 * 1024 * 2; // 2 MB
        http2.InitialStreamWindowSize = 1024 * 1024; // 1 MB
     
#if DEBUG
        options.ListenAnyIP(5001, listenOptions =>
        {
            listenOptions.Protocols = HttpProtocols.Http1;
            listenOptions.UseHttps();
        });
#endif
        
        // 新增5000端口监听,指定为HTTP1协议(适配Web API)
        options.ListenAnyIP(5000, listenOptions =>
        {
            listenOptions.Protocols = HttpProtocols.Http1;
            // 生产环境启用HTTPS的话,取消下方注释
            // listenOptions.UseHttps();
        });
        
        options.ListenAnyIP(8080);
        options.ListenAnyIP(8585, listenOptions => 
        { 
            listenOptions.Protocols = HttpProtocols.Http2;
        });
    });

    builder.Services.AddCodeFirstGrpc();
    
    _isGrpcBootstrapped = true;
}

补充检查项

  • 确认Web API的路由已正常注册(比如调用app.MapControllers()),无需调整与gRPC端点的注册顺序,但保持逻辑清晰即可。
  • Azure App Services环境下,需在应用程序设置中配置端口映射,确保5000端口被正确暴露。
  • 若启用HTTPS,需确认证书配置无误,避免因证书问题触发403错误。

错误截图:
403错误页面

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 09:55:15