grpc .net-core приложение не видно снаружи локально - PullRequest
0 голосов
/ 27 марта 2019

У меня есть приложение grpc dotnet core, версия dotnet core 2.1. Приложение работает нормально, когда выполняется на локальной машине и доступ с этой машины. Когда я хочу получить доступ к нему с другой машины (хотя брандмауэр отключен, порт открыт), я не могу получить к нему доступ. Я думаю, что это что-то в коде. Я не разработчик dotnet, но у меня есть какой-то микросервисный устаревший код :). Может ли быть так, что проблема в классе сервера Grpc.Core?

Пожалуйста, помогите

Код:

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 Ответ

1 голос
/ 01 апреля 2019

Ваш код явно говорит const string host = "localhost";, что означает, что он будет прослушивать только интерфейс обратной связи (= недоступен с других машин). Используйте, например, "[::]" или "0.0.0.0" для прослушивания на всех сетевых интерфейсах.

...