我试图让微软的gRPC“问候”应用程序在我的商务笔记本电脑上工作,但在调用gRPC调用时,我一直收到以下异常:
Grpc.Core.RpcException: 'Status(StatusCode=Internal, Detail="Error starting gRPC call: No such host is known.")'我正在运行的代码来自微软的示例,可以在on their github here中找到。
从字面上看,它可以归结为启动最基本的gRPC服务器,然后通过
using var channel = GrpcChannel.ForAddress("https://localhost:5001");
var client =  new Greeter.GreeterClient(channel);
var reply = await client.SayHelloAsync(new HelloRequest { Name = "GreeterClient" });对SayHelloAsync的调用引发了异常。在我家里的机器上,完全相同的代码运行良好。我已经检查了/etc/hosts文件中是否有奇怪的条目,但什么都没有。我还尝试将https://localhost:5001更改为https://[::1]:5001和https://127.0.0.1:5001,相同的例外,我发现这非常奇怪。
我也已经尝试过通过AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true);调用http端点,同样的例外。
发布于 2020-05-30 06:54:34
我想通了。不出所料,这是我的工作笔记本电脑的网络设置出现了问题。
我设置了HTTP_PROXY和HTTPS_PROXY环境变量。这些请求由底层HttpClient拾取,并尝试通过代理来路由请求。删除HTTP_PROXY和HTTPS_PROXY环境变量已修复此问题。或者,将NO_PROXY环境变量设置为localhost,127.0.0.1,::1也解决了这个问题。
https://stackoverflow.com/questions/62092381
复制相似问题