1、使用dotnet new grpc -o GrpcGreeter && cd GrpcGreeter && code . ,进入项目文件中,使用code .使用vscode打开。

  [注]你可能会遇到'code' command not found?

  解决办法:1)首次使用打开vscode -> command+shift+p -> 输入shell -> 提示Shell Command:Install 'code' in PATH -> 点击安装

       2)额外知识点:mac在命令行中可以使用open .打开文件夹

2、项目文件打开了,这个时候我们使用dotnet run运行项目。

  [注]你可能会遇到

  1)https certificate not found

  解决办法:一般的解决办法是直接按照提示运行dotnet dev-certs https --trust就可以了,但是我遇到了一个很奇葩的事情

  2)cannot create developer certificate on Mac

  解决办法:我重启了下电脑shutdown -r now,然后运行dotnet dev-certs https --trust,输入验证密码,然后ok了       

  3)无法绑定到 IPv4 环回接口上的 https://localhost:5001:在 macOS 上不支持 HTTP/2,因为缺少 ALPN 支持。 "。

  解决办法:无法在macOS启动ASP.NET Core gRPC应用

 public static IHostBuilder CreateHostBuilder(string[] args) =>
  Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.ConfigureKestrel(options =>
{
options.ListenLocalhost(, o => o.Protocols = HttpProtocols.Http2);
});
webBuilder.UseStartup<Startup>();
});

3、创建客户端项目dotnet new console -o GrpcGreeterClient,并引入以下三个包:

  dotnet add GrpcGreeterClient.csproj package Grpc.Net.Client

  dotnet add GrpcGreeterClient.csproj package Google.Protobuf

  dotnet add GrpcGreeterClient.csproj package Grpc.Tools

4、将服务端的Protos/greet.proto拷贝到客户端Protos/greet.proto下,并在GrpcGreeterClient.csproj项目文件中添加元素项组

<ItemGroup>
<Protobuf Include="Protos\greet.proto" GrpcServices="Client" />
</ItemGroup>

5、在客户端程序中

using System;
using System.Net.Http;
using System.Threading.Tasks;
using GrpcGreeter;
using Grpc.Net.Client; namespace GrpcGreeterClient
{
class Program
{
static async Task Main(string[] args)
{
var channel = GrpcChannel.ForAddress("http://localhost:5000");
var client = new Greeter.GreeterClient(channel);
var reply = await client.SayHelloAsync(
new HelloRequest { Name = "GreeterClient" });
Console.WriteLine("Greeting: " + reply.Message);
}
}
}

6、运行客户端程序,发现报错

于是我们想到可能是我们为了解决http2问题引起的,如何解决呢?

  解决办法:允许客户端进行不安全连接,添加下行代码

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

7、客户-服务端正常通信

记录一次Mac VSCode运行Grpc模板项目的更多相关文章

  1. 在Mac下运行ASP.NET Core应用程序

    在Mac下运行ASP.NET Core应用程序 通过参照.NET Core相关官方文档,在我的Mac电脑上用Visual Studio Code创建了我的第一个ASP.NET应用. 开发环境搭建 首先 ...

  2. Mac下运行ASP.NET Core应用程序

    Mac下运行ASP.NET Core应用程序 在Mac下运行ASP.NET Core应用程序 通过参照.NET Core相关官方文档,在我的Mac电脑上用Visual Studio Code创建了我的 ...

  3. [译]在Mac上运行ASP.NET 5

    原文:http://stephenwalther.com/archive/2015/02/03/asp-net-5-and-angularjs-part-7-running-on-a-mac 这篇文章 ...

  4. ubuntu 修改ssh远程主机名称,mac开机运行命令,静默方式启动virtual box虚拟机,静默执行run脚本

    一.修改主机名 ssh登陆 vi /etc/hostname vi /etc/hosts hostname ulocal (执行这个命令,无须重启服务器) 保证127.0.0.1 的hostname与 ...

  5. T4运行时模板

    可以通过Visual Studio运行时文本模板在您的应用程序在运行时生成文本字符串. 执行应用程序的计算机不必具有 Visual Studio. 运行库模板有时称为"预处理文本模板&quo ...

  6. [Cocos2d-x]Mac下运行HelloCpp For Android

    2013年12月22日 一.简介: Mac下运行Cocos2d-x的samples和新建的HelloCocos2dx项目 二.内容: 环境: OS:mac OS X 10.9.1 IDE:Androi ...

  7. [翻译]第三天- 在 Mac 上运行 .NET Core 应用程序

    原文: http://michaelcrump.net/part3-aspnetcore/ *** 简介 该系列文章的完整列表如下: 第一天 - 在 Windows 下安装和运行 .NET Core ...

  8. T4学习- 3、创建运行时模板

    使用 Visual Studio 预处理过的文本模板,可以在运行时在应用程序中生成文本字符串. 执行应用程序的计算机不必具有 Visual Studio. 预处理过的模板有时称为"运行时文本 ...

  9. mac 上运行cassandra出现的java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException: : : unknown error错误解决方法

    mac 上运行cassandra出现的java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostExce ...

随机推荐

  1. Python自定义包引入【新手必学】

    前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:sys_song python中的Module是比较重要的概念.常见的情 ...

  2. Maven pom.xml 全配置(一)常用配置

    Maven pom.xml 全配置(一)常用配置 这里贴出一个Maven中出现频率较高的配置参数注释,方便理解项目中Maven的配置具体的作用.如果在此博文中没有找到你想看到的参数,可以移步Maven ...

  3. 小白的springboot之路(九)、集成MongoDB

    0.前言 MongoDB是一个高性能.开源的文档型数据库,是当前nosql数据库中最热门的一种,在企业中广泛应用:虽然前段时间更改了开源协议导致被很多企业舍弃,但主要是对云服务商影响较大,对我们来说其 ...

  4. JS---案例:完整的轮播图---重点!

    案例:完整的轮播图 思路: 分5部分做 1. 获取所有要用的元素 2. 做小按钮,点击移动图标部分 3. 做右边焦点按钮,点击移动图片,小按钮颜色一起跟着变 (克隆了第一图到第六图,用索引liObj. ...

  5. WinCC的电子签名与审计追踪

    如何写入审计追踪记录 用脚本向Audit中添加记录有两种方法,一种方法是用InserAuditEntryNew函数写入,另一种方法是生成属于“操作员输入消息”类型的报警消息,该报警消息会记录到Audi ...

  6. wpf 模拟抖音很火的罗盘时钟,附源码,下载就能跑

    wpf 模拟抖音很火的罗盘时钟,附源码 前端时间突然发现,抖音火了个壁纸,就是黑底蕾丝~~~  错错错,黑底白字的罗盘时钟! 作为程序员的我,也觉得很新颖,所以想空了研究下,这不,空下来了就用wpf, ...

  7. WPF数据可视化-瀑布图

    实现方式一: 将数据(Point[])根据索引沿X轴使用虚拟画布进行绘制,每个数据绘制大小为1px * 1px:最终绘制出的宽度等于数据的总长度.标记并存储当前绘制的图为PreviousBitmap; ...

  8. [css display],table待续

    昨天复习了flex布局,今天打算继续,才发现有display:table,今天有的点,别的先写上,其他的后补吧 css display // none 此元素不会被显示. // block 此元素将显 ...

  9. 挖掘Dark Sky Maps(热的要死后,疯传的一个气温地图网站)

    最近,各种朋友圈,社会媒体,都在疯传一张图,这张图显示的全球的气温图,本没有什么特别的,但是这张图的网站来源所展示的数据与气象局或者各种天气预报的温度值相差倒是不少,引来一片网友的吐槽. 但是,作为专 ...

  10. 更改Android studio中SDK,AVD的默认路径

    对于大部分首次下载android studio开发android的人来说, 由于Android Studio将会默认把SDK,AVD下载到我们的C盘,造成大量内存的占用,那么如何更改SDK,AVD的路 ...