C#GRPC 服务端与客户端通信,故障排除记录

文章目录

  • 前言
  • 一、问题一解决方法
  • 二、问题二解决方法

前言

第一次建立GRPC服务端,客服端一直通不到服务端;
问题1:

One or more errors occurred. (Status(StatusCode=Internal, Detail="Error starting gRPC call. HttpRequestException: The SSL connection could not be established, see inner exception. IOException: The handshake failed due to an unexpected packet format."))
Status(StatusCode=Internal, Detail="Error starting gRPC call. HttpRequestException: The SSL connection could not be established, see inner exception. IOException: The handshake failed due to an unexpected packet format.")

问题2:

One or more errors occurred. (Status(StatusCode="Unimplemented", Detail="Bad gRPC response. HTTP status code: 404"))
Status(StatusCode="Unimplemented", Detail="Bad gRPC response. HTTP status code: 404")

参考链接:Go-gRPC 实践指南

一、问题一解决方法

原因:

gRPC默认内置了两种认证方式:
SSL/TLS认证方式
基于Token的认证方式

服务端建立https即可

二、问题二解决方法

原因是因为服务端没有注册成功GRPC

1.需要配置GRPC,在ConfigureServices方法中

//1.配置grpc
services.AddGrpc();

2.开启GRPC,在ConfigRoute方法中

 app.UseEndpoints(endpoints =>{//2开启Grpcendpoints.MapGrpcService<GisPointDeviceServiceImpl>();endpoints.MapControllers();});

GisPointDeviceServiceImpl,是对应的服务

  1. 第三步在报错前是已经做过的;

在ConfigureProduction方法中加入以下代码

string address = Environment.GetEnvironmentVariable("TSPSERVER_ADDRESS", EnvironmentVariableTarget.Process);
app.UseConsul(address, "GIS", address);
string grpcAddress = Environment.GetEnvironmentVariable("TSPGRPC_ADDRESS", EnvironmentVariableTarget.Process);
app.UseConsul(grpcAddress, "GISGrpc", address);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/360858.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

青禾BBS数据库查询语句(动网)

数据字典&#xff1a;http://files.cnblogs.com/ahauzyy/dvbbs.rar 查询用户信息: SELECT * FROM dbo.Dv_User WHERE UserName茗迹 查询用户发帖总数: SELECT UserTopic FROM dbo.Dv_User WHERE UserName茗迹 查询用户被删的帖子数&#xff1a; SELECT UserDel FROM dbo.Dv_Us…

EE JSP:Servlet的反向外套

仅当页面数量少或需要精确控制生成的内容&#xff08;二进制PDF等&#xff09;时&#xff0c;才可以从Servlet生成HTML。 对于大多数应用程序&#xff0c;输出将是HTML&#xff0c;我们需要一种更好的方法来完成此操作。 这就是JSP&#xff08;Java服务器页面&#xff09;出现的…

moment 24小时与12小时区别

moment(values.data).format(YYYY-MM-DD HH:mm:ss)--------------24小时 moment(values.data).format(YYYY-MM-DD hh:mm:ss)--------------12小时主要取决于format中的时分秒的大小写

android 自定义xml属性

Android 自定义组件 Android 提供了非常精致的和非常强大的组件化模型&#xff0c;能够更加方便的构建UI,这些UI组件都是基于基本的layout类:View 和 ViewGroup。 部分能够用的widgets包括&#xff1a;Button&#xff0c;TextView,EditText,ListView,CheckBox&#xff0c;Radio…

Neo4j:带密码的TF / IDF(和变体)

几周前&#xff0c;我写了一篇博客文章&#xff0c;介绍了如何使用scikit-learn在HIMYM成绩单上运行TF / IDF&#xff0c;以按情节找到最重要的短语&#xff0c;然后我很好奇在Neo4j中很难做到。 我首先将Wikipedia的TF / IDF示例之一翻译为cypher&#xff0c;以查看该算法的外…

验证码的设计,随机数的生成

只要将charNum改变就可以自定义设计生成随机数的个数。 //获取验证码的代码 void GetValidateCode() { validStr ""; Random rd new Random(); //创建随机数对象 //产生由 charNum 个字母或数字组成的一个字符串 …

There are multiple modules with names that only differ in ca

react antd 警告错误 原因&#xff1a;引用组件的大小写 // 原代码&#xff1a; import AddOrEditFrom from /components/Process/AddOrEditFrom; // 修改后代码 import AddOrEditFrom from /components/Process/AddOrEditFrom;

每个人都必须阅读的10篇Java文章

一个月前&#xff0c;我们发布了每个人都必须阅读的10篇SQL文章列表。 我们相信jOOQ博客上的文章列表将为我们的读者带来非凡的价值。 jOOQ博客是同时关注Java和SQL的博客&#xff0c;因此&#xff0c;一个月后的今天&#xff0c;我们发布了同样令人兴奋的10条Java文章列表&…

LeetCode: Longest Common Prefix

string.erase没掌握好&#xff0c;悲了个剧&#xff0c;2次过 1 class Solution {2 public:3 string longestCommonPrefix(vector<string> &strs) {4 // Start typing your C/C solution below5 // DO NOT write int main() function6 s…

React antd Descriptions span属性无效问题

label“Status” span{3}&#xff0c;但是span为3无效 <Descriptions title"User Info" layout"vertical" bordered><Descriptions.Item label"Product">Cloud Database</Descriptions.Item><Descriptions.Item label&quo…

如何在生产中检测和诊断慢速代码

开发人员面临的最困难的任务之一是查找和诊断生产中运行缓慢的代码。 首先&#xff0c;您如何监控生产代码而不放慢速度&#xff1f; 当然&#xff0c;您无法通过分析器运行生产代码。 即使您具有计时代码的机制&#xff0c;那么如何诊断问题呢&#xff1f; 如果您无法在开发环…

uni-app动态绑定class和style

目录动态绑定calss动态绑定style动态绑定calss class"[{‘类名’:条件},{‘类名’:条件},{‘类名’:条件}]" 为不同条件的image绑定不同的样式 <image class"img1" :class"[{img1:index 0},{img2:index 1},{img3:index 2}]":src"avt…

移动小球

描述 你有一些小球&#xff0c;从左到右依次编号为1&#xff0c;2&#xff0c;3&#xff0c;…&#xff0c;n&#xff0c; 你可以执行两种指令。其中A X Y表示把小球X移动到小球Y左边&#xff0c;B X Y表示把小球X移动到小球Y右边。指令保证合法&#xff0c;即X不等于Y。 输入 …

流式传输大数据:Storm,Spark和Samza

有许多分布式计算系统可以实时或近实时处理大数据。 本文将从对三个Apache框架的简短描述开始&#xff0c;并试图对它们之间的某些相似之处和不同之处提供一个快速的高级概述。 阿帕奇风暴 在风暴 &#xff0c;你设计要求的T opology实时计算的图&#xff0c;然后喂到集群&…

那天有个小孩跟我说LINQ(四)

小孩LINQ系列导航&#xff1a;&#xff08;一&#xff09; &#xff08;二&#xff09; &#xff08;三&#xff09; &#xff08;四&#xff09; &#xff08;五&#xff09; &#xff08;六&#xff09; &#xff08;七&#xff09; &#xff08;八&#xff09; 转载于:http…

uniapp使用阿里云多色图标

下载&#xff0c;然后解压 输入cmd&#xff0c;然后enter 输入 npm install -g iconfont-tools 再输入 iconfont-tools&#xff0c;然后一直enter&#xff0c;直到结束 目录会多了个iconfont-weapp文件&#xff0c;点击去找到 iconfont-weapp-icon.css 导入和使用 t-icon开头 接…

针对Java中的XSD验证XML

有许多工具可用于根据XSD 验证XML文档 。 其中包括操作系统脚本和工具&#xff0c;例如xmllint &#xff0c;XML编辑器和IDE&#xff0c;甚至是在线验证器。 由于前面提到的方法的局限性或问题&#xff0c;我发现拥有自己的易于使用的XML验证工具很有用。 Java使编写这样的工具…

细学PHP 09 MySql

1:mysql是什么&#xff1f;答&#xff1a;mysql是一种开源的&#xff0c;小型的数据库和&#xff30;&#xff28;&#xff30;结合的非常紧密 比较流行的LAMP组合 指 linux apache mysql php 2:我怎么样用Mysql&#xff1f;答&#xff1a;下载mysql并安装&#xff0c;装完之后…

修改 this 指向

文章目录前言一、new关键字改变this指向二、 call&#xff08;&#xff09;三、apply&#xff08;&#xff09;四 、bind&#xff08;&#xff09;五、总结前言 修改 this 指向,四种方法 一、new关键字改变this指向 //构造函数版this function Fn(){this.user "追梦子…

默认方法和多重继承

最近卢卡斯JOOQ埃德尔发布和文章有关嵌套类及其使用。 这是一个有趣的话题&#xff0c;他的文章一如既往地有趣并且值得一读。 我只同意一个简短的声明&#xff0c;我们有一个简短的回复链&#xff0c;导致默认方法&#xff0c;以及为什么不能有类似的东西 class Outer {<n…