当前位置: 首页 > 知识库问答 >
问题:

我的gRPC-Test项目只在本地主机上工作

梁研
2023-03-14

我有以下问题。

我创建了一个gRpc服务器(控制台应用程序。我不能在服务器端做Net Core,因为水晶报告:()和一个客户端(WPF应用。Net Core 3.1)而且只要服务器和客户端都在我的机器上(Windows 10)我就可以运行。至于我把我的服务器带到另一台机器(windows Server 2016),它不再工作了。

这是RPC异常

Status(StatusCode= "不可用",Detail= "无法连接到所有地址",DebugException="Grpc。core . internal . coreerrordetailexception:{ " created ":" @ 1595508082.170000000 "," description ":"未能选取子通道"," file ":" T:\ src \ github \ grpc \ workspace _ cs harp _ ext _ windows _ x64 \ src \ core \ ext \ filters \ client _ channel \ client _ channel . cc "," file_line":3948," referenced _ errors ":[{ " created ":" @ 1595508082.15

我尝试了所有的变化。以下是我在本地主机上运行的最后一段代码:

服务器:

static void Main(string[] args)
    {
        var cacert = File.ReadAllText(@"root.crt");
        var servercert = File.ReadAllText(@"server.crt");
        var serverkey = File.ReadAllText(@"server.key");
        var keypair = new KeyCertificatePair(servercert, serverkey);
        var sslCredentials = new SslServerCredentials(new List<KeyCertificatePair>() { keypair }, cacert, false);

        // Build a server
        var server = new Server
        {
            Services = { ReportService.BindService(new KKarteReportService()) },
            Ports = { new ServerPort(Host, Port, sslCredentials) }
        };


        // Start server
        server.Start();

        Console.WriteLine("KKarteReport Server listening on port " + Port);
        Console.WriteLine("Press any key to stop the server...");
        Console.ReadKey();

        server.ShutdownAsync().Wait();
    }

客户端

var cacert = File.ReadAllText(@"root.crt");
var clientcert = File.ReadAllText(@"client.crt");
var clientkey = File.ReadAllText(@"client.key");
var ssl = new SslCredentials(cacert, new KeyCertificatePair(clientcert, clientkey));
           
 var options = new List<ChannelOption> { new ChannelOption(ChannelOptions.SslTargetNameOverride, "MyServerHost") }; 
 var channel = new Channel("12.20.18.11", 5001, ssl, options);
 //var channel = new Channel("localhost", 5001, ssl, options);
 //var channel = new Channel(url, ChannelCredentials.Insecure);
 var client = new ReportService.ReportServiceClient(channel);

  using var streamingCall = client.CreateAusschreibung(request);

  await using var ms = new MemoryStream();

  while (await streamingCall.ResponseStream.MoveNext())
  {
        ms.Write(streamingCall.ResponseStream.Current.FileChunk.ToByteArray());
  }

我想念什么?

共有1个答案

阴英武
2023-03-14

“主机”变量在服务器端包含什么?问题可能是地址绑定不正确,这会阻止从本地主机(127.0.0.1)以外的IP地址访问服务。尝试在那里输入0.0.0。

 类似资料:
  • 我有两个应用程序——基于浏览器的客户端和基于NodeJS的服务器,它们都使用WebSockets进行通信(我使用的是ColyseusJS库)。问题是,当我在本地主机上测试它们时,一切都正常,但当我将应用程序部署到我的Ubuntu VPS服务器时,它停止工作。 我在尝试连接时在浏览器中收到的消息是: 所以它到达服务器(因为当服务器被禁用时,消息是“连接建立中的错误:净::ERR_CONNECTION

  • 我有一个RMI服务器在本地主机上运行,导出类型的对象: 然后我想启动一个客户端并获取该对象的存根。似乎找到了注册表,但随后在块中抛出了: java.rmi.NotBoundexception:M在sun.rmi.registry.registryimpl.lookup(registryimpl.java:136)在sun.rmi.server.unicastserverref.olddispatc

  • 我有这个简单的代码: 这在本地主机上效果很好,并导致: 但是当我在Heroku上使用它时,我得到了一个应用程序错误。日志状态: 2018-09-12t 13:50:25.541953 00:00 heroku[web . 1]:状态从启动更改为崩溃 2018-09-12T13:50:32.696713 00:00 heroku[router]: at=error code=H10 desc=“Ap

  • 我面临的问题,而上传我laravel项目到共享服务器,微软天蓝色。我不能访问除/以外的路线。我的路由文件有以下代码: 基本上,我使用php artisan make:auth生成登录注册默认功能。 我可以访问我的 /route: http://40.121.138.22/monrostudio/public/ 但不能访问其他路由,如/login、/register或我创建的任何其他路由。

  • 当我从Visual Studio运行它时,我的Asp.NetCore 2.0 MVC应用程序运行正常 但在VisualStudio中,我确实将ASPNETCORE_ENVIRONMENT设置为Production。据我所知,环境就是生产 我的操作系统是Windows 10,IIS版本是10.0.15063.0。 程序. cs: Startup.cs: 我的csproj:我无法将其粘贴为代码,因此不

  • 我正在尝试执行gmapsapi密钥的第一个示例https://developers.google.com/maps/documentation/javascript/tutorial?hl=es-419 在localhost的示例网站中,但地图没有加载。该API密钥是正确的,并与我的谷歌项目检查。