c# - C# gRPC localhost - 启动 gRPC 调用时出错:不知道这样的主机
问题描述
我正在尝试让 Microsoft 的 gRPC“Greeter”应用程序在我的商务笔记本电脑上运行,但在调用 gRPC 调用时我不断收到以下异常:
Grpc.Core.RpcException: 'Status(StatusCode=Internal, Detail="Error starting gRPC call: No such host is known.")'
这是我遵循的 Microsoft 的文档。 我正在运行的确切代码来自 Microsoft 的示例,可以在他们的 github 上找到。
它实际上归结为启动最基本的 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
and https://127.0.0.1:5001
,同样的例外,我觉得这非常奇怪。
我也已经尝试过 http viaAppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true);
并调用 http 端点,同样的例外。
解决方案
我想到了。正如预期的那样,这是我的工作笔记本电脑的网络设置问题。
我设置了 HTTP_PROXY 和 HTTPS_PROXY 环境变量。这些被底层 HttpClient 拾取并尝试通过代理路由请求。删除 HTTP_PROXY 和 HTTPS_PROXY 环境变量解决了这个问题。或者设置 NO_PROXY 环境变量localhost,127.0.0.1,::1
也可以解决问题。
推荐阅读
- react-native - 通过表单反应原生异步存储保存数据
- javascript - 输入掩码问题
- icons - 如何将图标设置为红色程序中的视图?
- amazon-web-services - 从 S3 加载 Spacy Wordnet 模型
- c - Systemd 状态显示守护进程处于活动状态(正在运行),但守护进程未执行并创建重复进程
- r - 如何在ggplot2中为矩形rasterGrob添加边框?
- python - 使用 shuffle=True 的“正常”k 折交叉验证和重复的 k 折交叉验证有什么区别?
- go - 查找给定文本中的所有选定单词
- c# - 即使授予访问权限,在 UWP 中访问文件也会引发 UnauthorizedAccessException
- ruby-on-rails - WebSocket握手期间Rails 6 Production ActionCable错误