.net core中Grpc使用报错:Request protocol 'HTTP/1.1' is not supported.
2024-08-23 15:40:44
显然这个报错是说HTTP/1.1不支持。
首先,我们要知道,Grpc是Google开源的,跨语言的,高性能的远程过程调用框架,它是以HTTP/2作为通信协议的,所以当我启动启用一个服务作为Grpc的服务端(被调用方)时,我们需要将监听的端口设置成HTTP/2协议的,设置方法有两种:
1、修改appsettings.json
在根节点下添加下面的配置
"Kestrel": {
"EndpointDefaults": {
"Protocols": "Http2"
}
}
需要注意的是,这个配置是修改默认行为,就是说修改所有端口的监听默认采用Http2(原来默认是Http1),但有时我们的项目是会监听多个端口,并不一定全是Http2协议。
2、手动监听Kestrel端口
修改Program中的CreateHostBuilder方法:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.ConfigureKestrel(options =>
{
options.ListenAnyIP(5000, listenOptions =>
{
listenOptions.Protocols = HttpProtocols.Http2;
});
});
webBuilder.UseStartup<Startup>();
});
其中使用ConfigureKestrel配置端口和它使用的协议,如果需要监听多个端口,只需要在使用ListenAnyIP方法监听即可,这样就无需改变默认协议了。
最新文章
- beanstalkd----协议
- 开源MVCPager
- java中 File文件常用操作方法的汇总
- Python TCP客户端
- 编写高质量JS代码的68个有效方法(七)
- solr 导入数据
- sell-- wordPOI
- Android 圆形ProgressBar风格设置
- Sqoop导数据出现的问题
- System V共享内存区
- asp.net2.0安全性(1)--用户角色篇(代码实现1)--转载来自车老师
- poj2635The Embarrassed Cryptographer(同余膜定理)
- Kafka的基本概念与安装指南(单机+集群同步)
- PHP:第一章——PHP中的变量002
- GDI+案例
- 2018.10.25 atcoder Leftmost Ball(计数dp+组合数学)
- 【翻译&;转载】shader的导数函数介绍
- 记录一下安装 mysql 的踩坑之路
- SpringMVC中使用-sqljdbc4.jar
- MR案例:输出/输入SequenceFile
热门文章
- MFC入门示例之访问对话框控件的7种方法
- 关于for与forEach遍历集合中对集合进行操作的问题
- 【HarmonyOS】【DevEco Studio】NOTE04:How to Jump to a Page(页面间的跳转)
- 为什么使用卡尔曼滤波器?(Youtube视频学习)
- [BUUCTF]PWN——jarvisoj_test_your_memory
- 【论文笔记】 Denoising Implicit Feedback for Recommendation
- .net 6 (.net core) 发布到linux docker中
- Vue中this.$router.push(参数) 实现页面跳转
- LuoguP4263 [Code+#3]投票统计 题解
- 使用容器挂载NFS