Code-first Grpc.Net не может подключиться к удаленному компьютеруC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Code-first Grpc.Net не может подключиться к удаленному компьютеру

Сообщение Anonymous »

Я пытаюсь обновить свой код с Grpc.Core на Grpc.Net и начинаю с части соединения клиент/сервер.
На стороне сервера я Я настраиваю Kestrel так:

Код: Выделить всё

private void CreateServer()
{
_server = Host.CreateDefaultBuilder()
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseKestrel();

webBuilder.ConfigureKestrel(options =>
{
options.Listen(IPAddress.Any, _port, listenOptions =>
{
listenOptions.Protocols = HttpProtocols.Http2;
listenOptions.UseHttps();
});
});

webBuilder.ConfigureServices(services =>
{
services.AddCodeFirstGrpc(options =>
{
options.MaxReceiveMessageSize = int.MaxValue;
options.MaxSendMessageSize = int.MaxValue;
});
});

webBuilder.Configure((IApplicationBuilder app) =>
{
app.UseRouting();
app.UseEndpoints(endpoints => endpoints.MapGrpcService());
});

}).Build();

_server.RunAsync();
}
А на стороне клиента я пытаюсь подключиться так:

Код: Выделить всё

        private IGrpcService CreateClient()
{
var channelOption = new GrpcChannelOptions
{
MaxReceiveMessageSize = int.MaxValue,
MaxSendMessageSize = int.MaxValue,
};

AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true);
var address = $"https://{_host}:{_port}";
Channel = GrpcChannel.ForAddress(address, channelOption);
IGrpcService client = Channel.CreateGrpcService();

client.SayHello("TESTING123");

return client;
}
И я получаю следующую ошибку:

Код: Выделить всё

Grpc.Core.RpcException: Status(StatusCode="Internal", Detail="Error starting gRPC call. HttpRequestException: No connection could be made because the target machine actively refused it. (testmachine1:59) SocketException: No connection could be made because the target machine actively refused it.", DebugException="System.Net.Http.HttpRequestException: No connection could be made because the target machine actively refused it. (testmachine1:59)
Следует отметить, что порты определенно одинаковы. Я зарегистрировал их, чтобы подтвердить, что я использую имя хоста в адресе. Однако я попытался получить IP-адрес с помощью Dns.GetHostAddresses(_host), и возникла та же ошибка. Также обратите внимание, что клиент и сервер — это две разные машины, я проверил журналы хост-машины, она запустилась, и я вижу, что она прослушивает указанный порт. Эта настройка также отлично работала с конфигурацией Grpc.Core с приоритетом кода.
Есть идеи, почему это может происходить? Буду признателен за любую помощь, поскольку я не уверен, что делаю неправильно.

Подробнее здесь: https://stackoverflow.com/questions/701 ... te-machine
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»