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

如何修复GrpcChannel报No address resolver configured for the scheme 'wss'错误

解决GrpcChannel使用wss前缀报错的问题

问题原因

GrpcChannel默认未注册wss协议的地址解析器,无法识别该协议方案,因此抛出No address resolver configured for the scheme 'wss'异常。

解决方案

方法1:使用GrpcWeb over WebSocket(推荐)

通过配置GrpcWebHandler适配WebSocket传输,满足服务对wss协议的要求:

  1. 安装必要NuGet包:
    Install-Package Grpc.Net.Client
    Install-Package Grpc.Net.Client.Web
    Install-Package System.Net.Http.WebSocketHandler
    
  2. 修改代码配置通道:
    // 创建支持wss的WebSocket处理器
    var webSocketHandler = new WebSocketHandler();
    // 配置GrpcWeb处理器,指定WebSocket模式
    var grpcWebHandler = new GrpcWebHandler(GrpcWebMode.WebSocket, webSocketHandler);
    // 绑定自定义处理器到HttpClient
    var httpClient = new HttpClient(grpcWebHandler);
    // 创建GrpcChannel并使用配置好的HttpClient
    var channel = GrpcChannel.ForAddress("wss://someservice.com:443", new GrpcChannelOptions
    {
        HttpClient = httpClient
    });
    

方法2:注册wss地址解析器

直接为wss协议复用https的地址解析逻辑,让GrpcChannel识别该协议:

// 注册wss协议的地址解析器
AddressResolverRegistry.Instance.Register("wss", new HttpsAddressResolver());
// 正常创建通道即可
var channel = GrpcChannel.ForAddress("wss://someservice.com:443", new GrpcChannelOptions());

注意事项

  • 确认服务端已开启gRPC over WebSocket(wss协议)支持,否则配置后仍无法正常连接
  • 若使用.NET WebAssembly(Blazor WASM),默认GrpcChannel已支持wss,仅需确认依赖包版本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 03:52:23