TLS 启用 dgraph 服务器使用 c# StatusCode=Unavailable, Detail="Empty update" grpc 异常

问题描述

我正在尝试使用 c# .net 连接 启用 tls 的 dgraph 服务器,因为我在控制台应用程序下方编写了该服务器

class DGraphClient
    {
        public IDgraphClient GetDgraphClient()
        {
            
            GraphSchemaIOConnection ConnectionConfig1 = new GraphSchemaIOConnection();
            ConnectionConfig1.Endpoint = "testdgraph.abc.tech:9080";
            DgraphInstance GSioDgraph = new DgraphInstance();
            DgraphCertificates certificates = new DgraphCertificates();
            certificates.CaCert = "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURVekNDQWp1Z0F3SUJBZ0lJR1dnMnhpbzVMYVl3RFFZSktvWklodmNOQVFFTEJRQXdSakVhTUJnR0ExVUUKQ2hNUlJHZHlZWEJvSUV4aFluTXNJRWx1WXk0eEZ6QVZCZ05WQkFNVERrUm5jbUZ3YUNCU2IyOTBJRU5CTVE4dwpEUVlEVlFRRkV3WXhPVFk0TXpZd0hoY05NakV3TWpJeU1EWXpORFU0V2hjTk16RXdNakl5TURZek5EVTRXakJHCk1Sb3dHQVlEVlFRS0V4RkVaM0poY0dnZ1RHrmljeXdnU1c1akxqRVhNQlVHQTFVRUF4TU9SR2R5WVhCb0lGSnYKYjNRZ1EwRXhEekFOQmdOVkJBVVRCakU1Tmpnek5qQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQwpBUW9DZ2dFQkFNeTV4RHN4eXhoTVpUM01TMGplcS9qOGFMM2tCZHZWcmNSS2lTUjY5MFZ1L2xKREk1Zm5tdHduCjN2WWxNbXQyNEVmQ0x4Rzk2S3dqZ3ZVZlBNZFI3WGM2RFFlUWpmanA1TXBaV2VwMzdxWTVURExLcC9YNEF0WUIKcU5reVlQSFo4R1BYOVN1Zk9jSk5vdUZtWStpeDY5L2VkTlpMczA5SC93STd4dDlpREExTzBQVVQ1Z00yZi9vLwp5d2Rpb2J0S3dpnmszY2VxTTRPZ2dLUE92d0k2K0ViOE9TM0wwZ3VIQ05IaHJxM3VjblJKeE5yaWZvNnNoTEhECkdXQ3BRbXRWZDM0azVsY3dVakdBa2k2VTJONU9Yc09TRmozbU1MTnNnaThUeFFWYWlSQzFhNjRqamJKUGVDb0kKNkduamgvb3cwmfpIa05seFBqZWI4Umx5ZzM2RkJEc0NBd0VBQWFORk1FTXdEZ1lEVlIwUEFRSC9CQVFEQWdMawpNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRk5HUlQxdkZJSTNiZnBQYk5LcnpnQXBEClJJcGlNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUJBUUFBWGQ5VXRaYk54Ny8wbjNXMnNVcG9GVVRJTGlsRkc3d0sKY1pMamtxZyt0dXJ5SFd1YVcvcW5NRC9oSTRGeW1lb211Y0hzclhVUVBiLzVTVEl1NkczQWp0U3pxL2o2OVkvQgp4M2RvdGdibStLME9aYmJKRGpwcU1CZnFqSFJCSm1sL0VGcTZ1ME56eGxYd3ZWRDU5SFF6OThpWFZZTzBDYmFnClN4OFFpbUVTWjJ4Mk5vdkZ1c3JHNHhickRaKzlDa1ZvN25OeWliMGZETm4vaXhvZDBRNmVod1d4aXNYV1cxblIKbFd4SzR6aUsxNzNyS1lqQVBaVUxmNEFLR0h5R1pxeU9xaG9EVEczelU4Y2hmYmcyUW9ZOHdZSGZVNGpHb3RKMQp6UCsyenhRR1pyQkFhWVdaakw0TUdyd09BeVEzdGRUSjRURWozZHgwL2hOaGEwbHhIZTVVCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K";
            certificates.ClientCert = "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURWvendQWoyZ0F3SUJBZ0lJS2Y3WjVYVlVIVjh3RFFZSktvWklodmNOQVFFTEJRQXdSakVhTUJnR0ExVUUKQ2hNUlJHZHlZWEJvSUV4aFluTXNJRWx1WXk0eEZ6QVZCZ05WQkFNVERrUm5jbUZ3YUNCU2IyOTBJRU5CTVE4dwpEUVlEVlFRRkV3WXhPVFk0TXpZd0hoY05NakV3TWpJeU1EWXpORFU1V2hjTk1qWXdNakl6TURZek5EVTVXakJGCk1Sb3dHQVlEVlFRS0V4RkVaM0poY0dnZ1RHrmljeXdnU1c1akxqRVdNQlFHQTFVRUF4TU5kbWx6ZFhKeFlXUm4KY21Gd2FERVBNQTBHQTFVRUJSTUdNamxtWldRNU1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQgpDZ0tDQVFFQXF1QU04ZnlhY3l2QW42VDF2TTNsRWYrYm9QendRdVlBTW5zaFNmNjFuZVhFVTNlZ3l5cmFLSVg1CjNrSkhIV0JqSGE1T2lNUG1ib3pWT2phUldlZGVXZDdTWmozb0IwV3NEd3YzTHhuN0dPUThHQU5UU3VTMURadFYKczBSMkhIamJUM0I1WHRHeXdNVTFORHkwcTZDNXdVT1NOSk85cWhKOW4wMUwrK3ltT3RYd3JCbUhlaVVhd21vRAp2c21mWFlUREJiUC93V0lYeW5vYkd5N3R6cEtteWRmOHErcm0zd0VKQ3FTNGNEVHlwVU0rdWZIVelpyXZXQWE0CnpyUXZ0Mk11bVRiclJSWlRZUVZmdU9jbkduQ3pSS0hjQ2RJWWdFcTl3Zmx0WjRZQjAydUtYZHY2Tkw5aGJrRXYKUmozNlZUMithaG5CS2FZM1l4d0xOVGNqWWxqeXlrsURBUUFCbzBnd1JqQU9CZ05WSFE4QkFmOEVCQU1DQjRBdwpFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUhBd0l3SHdZRFZSMGpCQmd3Rm9BVTBaRlBXOFVnamR0K2s5czBxdk9BCkNrTkVpbUl3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUFrYWprLzNmMUo2bDBVZWZPM0ozNEpYOGszMTM4N1oKY1BZaWt1Z1A3M2wwT3dnc2oxY3VHODh3UXczREdDN3NPNlVQU0lzQ2ZHdXlVVzJmZG1QSFN5V3hxbGFGTnN2Zwo3WithVE92aHBYNGVuYTNUcE9lb0FKdUlXOVRjendLZjdBbWo2VEY1MjNaQWtkOVhhcTZMaVVwR0QzdFdhajgxCmRBK3dRVTgvaE5tZ29GR2lhVmFqYm9wVFU0K0hvTG9HWExuTTY3dU5TdGJEQ05uVlluZExDTHpDM1BORUtEYVAKdC9kMEQvczB6L1lnMi9ZaEFlMzV6WTIzNytFbkZXMCsrbG5wUEtZNFFuY1ozL3ZYN1lhYTlRejZKSFgxOG9oUwpJbVVuUEtsMzlJT21ocEJNckdCK2JxRTRTMFM1eXB3NUl6WUtMLzVsRnVtZVZoSVFoLzVmdHZRPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg";
            certificates.ClientKey = "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb3dJQkFBS0NBUUVBcxvBTThmeWFjeXZBbjZUMXZNM2xFZitib1B6d1F1WUFNbnNoU2Y2MW5lWEVVM2VnCnl5cmFLSVg1M2tKSEhXQmpIYTVPaU1QbWJvelZPamFSV2VkZVdkN1NaajNvQjBXc0R3djNMeG43R09ROEdBTlQKU3VTMURadFZzMFIySEhqYlQzQjVYdEd5d01VMU5EeTBxNkM1d1VPU05KTzlxaEo5bjAxTCsreW1PdFh3ckJtSAplaVVhd21vRHZzbWZYWVREQmJQL3dXSVh5bm9iR3k3dHpwS215ZGY4cStybTN3RUpDcVM0Y0RUeXBVTSt1ZkhUCklPYXZXQWE0enJRdnQyTXVtVGJyUlJaVFlRVmZ1T2NuR25DelJLSGNDZElZZ0VxOXdmbHRaNFlCMDJ1S1hkdjYKTkw5aGJrRXZSajM2VlQyK2FobkJLYVkzWXh3TE5UY2pZbGp5eVFJREFRQUJBb0lCQURmcjYxQ21vc1ZlWkVQYQo4TEZCa040N0VPdTIyOHFKQ3pkNkpJTGE0UVV6MVBTY0NmdHpvc0h3VnIzdVl1ZXlTNzNDOWVDOGZBVmlBY1p6ClpVNU84Z25uYW1RYmpud1N5U1NEZmZua1B0RCtvTXdiQ245UUtoQ3g3WElsemfhenk5Skx0T3piSSswQ25VN2oKTHgyY0ZDNnp0bjJPZkZ2VWdWaEpLN3plemVnaTR4cU1KVm5WY0hucXhnVDIzeW9aQ1Jxcnk5RWpTSjhXUlJuUgpJSWtzZEUrNk9DelJFMmZmekNNTjFKZWREOUlIdlQ0RFBDOVJBdndnR1ZWMjFaTTIzUDM3d3JlS3R6SzEvYkozCmpIOGdmNWFRYVRmM2xndHQ2T2pSY2dPM0xyL094QjFIdGcxa3FGbTJxRktGQVhjcDBEZVp5ZWt4UiszS2NmOFEKc2w0TnQ2RUNnWUVBMWRNdFBmeXF6Z1VYbEt4ZlkyL1dNVWJjVy9JV1ZXczlyN2VkaExEUUJVS3k5Q0R4b3BqTApFNEZKTXhrSngwUGRsUUkxSU5DQ2lZeVZyM3ZhVnQzd3ZmY0FoNFZMTWsvYnhWcFB5NEM3MDZtS1YydUdCZFV1CmFOREVJbkhGUVM2RTJEa0FJNVlNWGdyQVdJU0RwNVc5ZVlvK3hLbW5HdVJTbkZSRlFBZjBiN2NDZ1lFQXpKUXUKZGVwbEV2cE1uQ1VTYnJkQWg4Vkc1bWFPeFJ6aXpZeGNySUNmLzlHa1VZR1ozMjNNcjFIYk1OMS9ycGNRNFNCNgorYlVweHhzaTNQT05uTU9IRUFubTc3R0FTRmZDd2tjSjlFeXZRVXpLOExSd3czbFFtMVRGMDNIR3BLMjNNVEJGCmdKNzBFUkFQUitUK2pIZkFXUm5LdkV3YjcxZFNqZjFGdFZmb3NYOENnWUVBaXRSVTRKVkhkUUliWUYxV2hhSmMKU0p4QWdMWTZ4L1VjRlJXN2dTYW51WEtuN0JmanEzVlhETy81VGVMbzFXYjczRDZWcmh1VFZhbGdtcEpvbmRQMQo5ZkVFZC9rVWJMTXE5d1QvSUJzU1dJZ1FtVmZucWF2VE9SeXE2ODVBaTJTZnZoK3NObTY2MHVoYUlGN1JlQ0toCjVlTGJoQ2ErcDVndEJ2RTBFVEhaQkJzQ2dZQmxxUkU1YVdRV3ZTa0t3dVZZL1ZsazNxU3Y0N0Q0eExUei9kY2oKcGJ0Y2pab0JJczBMR1c0SWhUM09GNVBXZDUxY3NoNUtManQzaE1XYlZMQS9nVzZCaXRvbXJHY2FDL3B0UG8zMAp4NUtqZVh5emhvY3VxLzloWVF2NVdlV2plZXU1MXNvQzgzcEhiRnFibUhEaDdyUTMwcmhMUCtyMTBjZmxaVUdaCnJ2aWtFd0tCZ0QzbjJSNDNHQWZlTnV6V25NZEtDT3BXWTJVQVZHdG5Tbmx2bWhDcHVLM0hnVmV4RGd6d0g1U0YKeG9kNE04U1pBV3lNSGxBcGx2VEFrWE9JWGdHYjgrQVl5aklPVVMybTZocHFlMk1neVZobGZuWFIxeWwrUXJiNwovY0FsN3RpR0kvcmJDZFYvVFpltVJHN0ZyUVFUK0p2NFErbTlKT0EwNldWMTYrTU5ZNXAwCi0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg";
            GSioDgraph.Certificates = certificates;
            GSioDgraph.Address = "testdgraph.abc.tech:9080";
            if (ConnectionConfig1.Endpoint.Equals("localhost"))
            {
                var client = DgraphDotNet.Clients.NewDgraphClient();
                client.Connect("");
                return client;
            }
            else
            {
                var client = DgraphDotNet.Clients.NewDgraphClient();

                var caCert = GSioDgraph.Certificates.CaCert;
                var clientCert = GSioDgraph.Certificates.ClientCert;
                var clientKey = GSioDgraph.Certificates.ClientKey;
                var tls = new SslCredentials(caCert,new KeyCertificatePair(clientCert,clientKey));

                client.Connect(GSioDgraph.Address,tls);



                //   var  result =  client.CheckVersion();


                return client;
            }
        }

并使用以下代码调用检查版本

 DGraphClient dc = new DGraphClient();
            try
            {
                var dgraphClient = dc.GetDgraphClient();


               
                var result1 = await dgraphClient.CheckVersion();

                if (result1.IsSuccess)
                {
                    Console.WriteLine("Connected to Dgraph version {Version}",result1.Value);

                }


                var res = await dgraphClient.Query(query);//.NewTransaction().Query(query);
                if (res.IsFailed)
                {
                    Console.WriteLine("ERROR THROWING");
                }
                result = res.Value;
                await dgraphClient.NewTransaction().Commit();
              
            }
            catch (Exception ex)
            {
                throw ex;

            }

在实例化客户端后,我只是检查服务器版本以确保其已连接但因 grpc {Result: IsSuccess='False',Reasons='ExceptionalError with Message='Status(StatusCode=Unavailable,Detail="Empty update")',Exception='Grpc.Core.RpcException: Status(StatusCode=Unavailable,Detail="Empty update")\r\n at DgraphDotNet.GRPCConnection.CheckVersion()\r\n at DgraphDotNet.DgraphClient.CheckVersion()'',} 失败

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...