从本地外部看不到grpc .net-core应用程序

时间:2019-03-27 13:34:28

标签: .net-core grpc

我有grpc dotnet核心应用程序,dotnet核心版本2.1。 在本地机器上执行并从该机器访问时,应用运行良好。当我想从其他计算机访问它(虽然禁用了防火墙,打开了端口)时,我无法访问它。我认为这是代码的问题。我不是dotnet开发人员,但有一些微服务遗留代码:)。难道是Grpc.Core Server类中的问题?

请帮忙

代码:

using System; 
using System.Collections.Generic; 
using System.IO; 
using Grpc.Core; 

...

static void Main()

{

const int port = 4000;

const string host = "localhost";

var cert = File.ReadAllText("cert.pem");

var key = File.ReadAllText("key.pem");

var keypair = new KeyCertificatePair(cert, key);

var server = GetServer(port, host, keypair);

server.Start();

server.ShutdownTask.Wait();

}

private static Server GetServer(int port, string host, KeyCertificatePair keypair)

{

return new Server

{

Services = { SomeService.BindService(new SomeServiceImpl()) },

Ports = { new ServerPort(host, port, new SslServerCredentials(new List<KeyCertificatePair>

{

keypair

}))}

};

}

1 个答案:

答案 0 :(得分:1)

您的代码明确表示const string host = "localhost";,这意味着它将仅在回送接口上侦听(=无法从其他计算机访问)。使用例如"[::]""0.0.0.0"来监听所​​有网络接口。