.net core grpc.net核心应用程序在本地外部不可见

.net core grpc.net核心应用程序在本地外部不可见,.net-core,grpc,.net Core,Grpc,我有grpc dotnet core应用程序,dotnet core版本2.1。 应用程序在本地主机上执行并从该主机访问时运行良好。当我想从其他机器访问它时(尽管防火墙已禁用,端口已打开),我无法访问它。我认为这与代码有关。我不是dotnet开发人员,但有一些microservice遗留代码:)。问题是否存在于Grpc.Core服务器类中 请帮忙 代码: static void Main() { const int port=4000; const string host=“localhost

我有grpc dotnet core应用程序,dotnet core版本2.1。 应用程序在本地主机上执行并从该主机访问时运行良好。当我想从其他机器访问它时(尽管防火墙已禁用,端口已打开),我无法访问它。我认为这与代码有关。我不是dotnet开发人员,但有一些microservice遗留代码:)。问题是否存在于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=新的KeyCertificatePair(证书,密钥);
var server=GetServer(端口、主机、密钥对);
server.Start();
server.shutdownstask.Wait();
}
私有静态服务器GetServer(int端口、字符串主机、KeyCertificatePair密钥对)
{
返回新服务器
{
Services={SomeService.BindService(新的SomeServiceImpl())},
Ports={new ServerPort(主机、端口、新SslServerCredentials(新列表
{
钥匙对
}))}
};
}

您的代码明确表示
conststringhost=“localhost”
这意味着它将只在环回接口上侦听(=无法从其他计算机访问)。使用例如
“[::]”
“0.0.0.0”
监听所有网络接口。

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

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

}))}

};

}