C# gRP C localhost - Ошибка при запуске вызова gRP C: такой хост не известен - PullRequest
3 голосов
/ 29 мая 2020

Я пытаюсь заставить приложение Microsoft gRP C "Greeter" работать на моем бизнес-ноутбуке, но при вызове вызова gRP C я продолжаю получать следующее исключение:

Grpc.Core.RpcException: 'Status(StatusCode=Internal, Detail="Error starting gRPC call: No such host is known.")'

Это документация от Microsoft, за которой я следил. Точный код, который я использую, взят из образцов Microsoft, и его можно найти на их github здесь .

It буквально сводится к запуску самого базового c gRP C сервера и последующему вызову вызова через

using var channel = GrpcChannel.ForAddress("https://localhost:5001");
var client =  new Greeter.GreeterClient(channel);
var reply = await client.SayHelloAsync(new HelloRequest { Name = "GreeterClient" });

. Вызов SayHelloAsyn c вызывает исключение. Тот же самый код на моем домашнем компьютере работает нормально. Я уже проверил свой файл / etc / hosts на предмет странных записей, но ничего. Я также пробовал изменить https://localhost:5001 на https://[::1]:5001 и https://127.0.0.1:5001, то же исключение, которое я нахожу невероятно странным.

Я также уже пробовал http через AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true); и вызывал конечную точку http, то же исключение.

1 Ответ

2 голосов
/ 30 мая 2020

Я разобрался. Как и ожидалось, это была проблема с сетевой настройкой моего рабочего ноутбука.

У меня были установлены переменные среды HTTP_PROXY и HTTPS_PROXY. Они были перехвачены базовым HttpClient и попытались направить запросы через прокси. Удаление переменных среды HTTP_PROXY и HTTPS_PROXY устранило проблему. В качестве альтернативы установка переменной среды NO_PROXY на localhost,127.0.0.1,::1 также решила проблему.

...