grpc 错误记录一下 掉坑里爬了三天


RpcException: Status(StatusCode=Internal, Detail="Error starting gRPC call. HttpRequestException: An error occurred while sending the request. IOException: The response ended prematurely, with at least 9 additional bytes expected.")

  经常报这样的错我。我把坑了好几天。。。

记录一下

第一步   制定kestrel  监听的端口    并制定是http2 协议

  public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.ConfigureKestrel(option =>
                    {
                        option.ListenLocalhost(5001, o => o.Protocols = Microsoft.AspNetCore.Server.Kestrel.Core.HttpProtocols.Http2);
                    });
                    webBuilder.UseStartup<Startup>();
                });
    }

  第二部 客户端调用时候 

 AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true);

                string targetUrl = "http://localhost:5001";
                using (var channel = GrpcChannel.ForAddress(targetUrl))
                {
                    var client = new Score.ScoreClient(channel);

                    Console.WriteLine("***************单次调用************");
                    {
                        var reply = await client.GetScoreAsync(new ScoreRequest() { LessonId = "123" });
                        string result = Newtonsoft.Json.JsonConvert.SerializeObject(reply.Score);
                        Console.WriteLine($"ScoreClient {Thread.CurrentThread.ManagedThreadId} 服务返回数据1:{result} ");
                        base.ViewBag.Result = result;
                    }
                }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM