架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 24417|回复: 0

[资料] .NET Core 调用 gRPC HTTP(非TLS保护 ) 地址报错解决方案

[复制链接]
发表于 2021-3-22 16:45:16 | 显示全部楼层 |阅读模式
gRPC 是一种与语言无关的高性能远程过程调用 (RPC) 框架。

gRPC 的主要优点是:

现代高性能轻量级 RPC 框架。
协定优先 API 开发,默认使用协议缓冲区,允许与语言无关的实现。
可用于多种语言的工具,以生成强类型服务器和客户端。
支持客户端、服务器和双向流式处理调用。
使用 Protobuf 二进制序列化减少对网络的使用。

这些优点使 gRPC 适用于:

效率至关重要的轻量级微服务。
需要多种语言用于开发的 Polyglot 系统。
需要处理流式处理请求或响应的点对点实时服务。

回顾:
【实战】ASP.NET Core 中使用 gRPC 通信
https://www.itsvse.com/thread-8834-1-1.html

.net/c# Google Protocol Buffers 快速入门
https://www.itsvse.com/thread-3626-1-1.html

.net/c# Google Protocol Buffers 使用教程
https://www.itsvse.com/thread-3668-1-1.html

在使用 ASP.NET Core 3.1 开启了一个 gRPC 服务,并设置 HTTP/2 端点配置为不带 TLS 保护,参考:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel/endpoints?view=aspnetcore-5.0#listenoptionsprotocols

使用 .NET Core 3.1 的控制台,尝试调用 HTTP 的 gRPC 服务地址,报错如下:


Unhandled exception. Grpc.Core.RpcException: Status(StatusCode="Unavailable", Detail="Error starting gRPC call. HttpRequestException: An error occurred while sending the request. IOException: The response ended prematurely.", DebugException="System.Net.Http.HttpRequestException: An error occurred while sending the request.
---> System.IO.IOException: The response ended prematurely.

QQ截图20210322162531.jpg

根据应用使用的 .NET 版本,调用不安全的 gRPC 服务还需要满足一些额外要求:

.NET 5 或更高版本要求使用 Grpc.Net.Client 版本 2.32.0 或更高版本。
.NET Core 3.x 要求进行额外配置。 应用必须将 System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport 开关设置为 true:


客户端设置如下:

只有 .NET Core 3.x 需要 System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport 开关。 .NET 5 中不需要任何额外配置,也没有这项要求
QQ截图20210322162615.jpg

https://docs.microsoft.com/zh-cn/aspnet/core/grpc/troubleshoot?view=aspnetcore-5.0#call-insecure-grpc-services-with-net-core-client





上一篇:.NET/C# 反射、Emit、Expression 性能测试
下一篇:迟到的新人报道
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-26 21:14

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表