Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Grpc dotnet 为什么我在尝试从Grpc服务获取.net Core写入的数据时会收到Grpc.Core.RpcException_Grpc Dotnet - Fatal编程技术网

Grpc dotnet 为什么我在尝试从Grpc服务获取.net Core写入的数据时会收到Grpc.Core.RpcException

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

我在windows server中部署了一个gRPC服务(用.net core 3.1编写),作为kerstel中运行的自托管服务

我添加了以下配置以使服务在https中运行

"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
        });