我是使用protobuf-net.Grpc在.NET Core服务器上,并尝试从.NET Framework(4.7.2)gRPC客户端进行调用。完整示例在这里:https://github.com/angelagyang/GRPCProtobufExample
以下是我的客户端片段:
使用这个配置时,当调用服务器时会出现错误
有没有办法在.NET Framework中配置客户端证书,就像这样?我对gRPC/.NET还不太熟悉,希望得到建议!
var channelCreds = new SslCredentials(GetRootCertificates());
var channel = new Channel("localhost", 5001, channelCreds);
var greeter = channel.CreateGrpcService<IGreeterService>();
使用这个配置时,当调用服务器时会出现错误
StatusCode="Unknown", Detail="Stream removed"...
。如果我在服务器上设置ClientCertificateMode = ClientCertificateMode.NoCertificate
,则可以连接到服务器。然而,我希望服务器需要客户端证书并通过指纹验证证书。
例如,在.NET Core中,我可以使用Grpc.Net.Client来配置我的通道,如下所示:
var handler = new HttpClientHandler();
handler.ClientCertificates.Add(certificate);
var channel2 = GrpcChannel.ForAddress("https://localhost:5001", new GrpcChannelOptions
{
HttpHandler = handler
});
有没有办法在.NET Framework中配置客户端证书,就像这样?我对gRPC/.NET还不太熟悉,希望得到建议!
C#
**)。 - Peter B