Grpc dotnet 为什么我在尝试从Grpc服务获取.net Core写入的数据时会收到Grpc.Core.RpcException
我在windows server中部署了一个gRPC服务(用.net core 3.1编写),作为kerstel中运行的自托管服务 我添加了以下配置以使服务在https中运行Grpc dotnet 为什么我在尝试从Grpc服务获取.net Core写入的数据时会收到Grpc.Core.RpcException,grpc-dotnet,Grpc Dotnet,我在windows server中部署了一个gRPC服务(用.net core 3.1编写),作为kerstel中运行的自托管服务 我添加了以下配置以使服务在https中运行 "Kestrel": { "EndpointDefaults": { "Protocols": "Http2" }, "Endpoints": { "HttpsInlineCertFile": { "Url": "https://hostname:8081", "Protocols": "Http
"Kestrel": {
"EndpointDefaults": {
"Protocols": "Http2"
},
"Endpoints": {
"HttpsInlineCertFile": {
"Url": "https://hostname:8081",
"Protocols": "Http2",
"Certificate": {
"Path": "path to .pfx file",
"Password": "Super secret password"
}
}
}
使用下面的代码
using GrpcChannel channel = GrpcChannel.ForAddress(httpsHost);
var client = new MyClient(channel);
var response = client.GetEntity(RequestCreator.GetRequest());
Console.WriteLine("Recieved: " + response.ToString());
我得到一个下面的异常,内部异常为null
状态(StatusCode=Internal,Detail=“启动gRPC调用时出错:无法建立SSL连接,请参阅内部异常。”)
我是否应该添加任何内容以使客户端从服务获取数据
提前感谢很抱歉我的问题没有及时回复。问题是代理。我最后做的是创建一个webproxy,将gRPC服务url添加到bypassArrayList,创建httpClientHandler,分配创建的proyx,然后创建一个使用该httpClientHandler的httpClient
var proxy = new WebProxy
{
Address = new Uri(proxyServer),
UseDefaultCredentials = true,
BypassProxyOnLocal = true,
Credentials = CredentialCache.DefaultNetworkCredentials
};
proxy.BypassArrayList.Add(serviceUrl);
var httpClientHandler = new HttpClientHandler
{
Proxy = proxy,
DefaultProxyCredentials = CredentialCache.DefaultNetworkCredentials,
UseDefaultCredentials = true,
UseProxy = true,
};
var client = new HttpClient(httpClientHandler)
{
DefaultRequestVersion = HttpVersion.Version20
};
using var channel = GrpcChannel.ForAddress(serviceUrl, new GrpcChannelOptions
{
HttpClient = client
});