相关疑难解决方法(0)

在C#中对GRPC的TLS支持

我是C#的新手,我需要在TLS上使用GRPC。

作为试运行,我正在修改主grpc存储库中提供的示例以使用TLS。为此,我发现了另一个SO问题,似乎是个好答案:如何为gRPC启用服务器端SSL?。但是,我得到一个错误Unhandled Exception: Grpc.Core.RpcException: Status(StatusCode=Unavailable, Detail="Connect Failed")(下面有完整的跟踪)。

如果我在原始的非tls代码中指定了错误的端口,或者只是不启动服务器,则会收到相同的错误。我在Ubuntu上使用dotnet core。

代码的重要部分在下面,也可以在github的fork中找到。

客户:

  var cacert = File.ReadAllText(@"../ca.crt");
  var clientcert = File.ReadAllText(@"../client.crt");
  var clientkey = File.ReadAllText(@"../client.key");
  var ssl = new SslCredentials(cacert, new KeyCertificatePair(clientcert, clientkey));
  var channel = new Channel("localhost", 555, ssl);
  var client = new Greeter.GreeterClient(channel);

  String user = "you";

  var reply = client.SayHello(new HelloRequest {Name = user});
  Console.WriteLine("Greeting: " + reply.Message);

  channel.ShutdownAsync().Wait();
  Console.WriteLine("Press any key to exit...");
  Console.ReadKey();
Run Code Online (Sandbox Code Playgroud)

服务器:

  var cacert = File.ReadAllText(@"../ca.crt");
  var …
Run Code Online (Sandbox Code Playgroud)

c# grpc

5
推荐指数
1
解决办法
1754
查看次数

标签 统计

c# ×1

grpc ×1