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

C#通过gRPC连接Concordium区块链API出现SSL连接异常问题

gRPC SSL连接错误排查方向
  • 自签证书校验问题
    Concordium本地节点默认使用自签SSL证书,.NET HttpClient默认开启严格的SSL证书校验,会拦截自签、域名不匹配、过期的证书,而BloomRPC默认跳过无效证书校验,这是两类客户端表现不一致的最常见原因。
    可以临时添加如下配置测试,确认是否为证书校验导致的问题:
// 创建channel时添加配置
using var channel = GrpcChannel.ForAddress("https://192.168.1.18:10001", new GrpcChannelOptions
{
    HttpHandler = new HttpClientHandler
    {
        // 仅测试使用,生产环境需替换为明确的证书校验逻辑,避免安全风险
        ServerCertificateCustomValidationCallback = (sender, cert, chain, sslPolicyErrors) => true,
        // 明确指定TLS版本,适配gRPC要求的TLS 1.2及以上版本
        SslProtocols = System.Security.Authentication.SslProtocols.Tls12 | System.Security.Authentication.SslProtocols.Tls13
    }
});

如果测试后可以正常调用,后续可以将节点的SSL证书导出后配置到客户端信任列表,或者在校验逻辑中明确匹配证书指纹即可。

  • 检查HTTP/2支持
    gRPC依赖HTTP/2协议,需要确认运行客户端的操作系统支持HTTP/2:Windows环境需要Windows 10 1607版本及以上,Linux环境需要libcurl 7.38.0及以上版本。同时请确保使用的Grpc.Net.Client Nuget包版本适配.NET Core 3.1环境,建议使用2.x系列的稳定版本。
  • 调整调用方式
    你当前使用的是同步调用方式,可尝试切换为异步调用PeerVersionAsync,避免同步调用在部分.NET Core 3.1场景下出现的上下文阻塞问题:
var reply = await client.PeerVersionAsync(request, metadata);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 05:09:02