c# - "SocketException: Name or service not known"当 URL 在浏览器中正常加载时

标签 c# asp.net-core asp.net-core-3.1

我有以下代码:

var url = "http://myComputer.myDomain.net:44344/Testing/TestCall";
var httpClient = new HttpClient();
var httpResponse = await httpClient.GetAsync(url);
var content = await httpResponse.Content.ReadAsStringAsync();
当我运行它时,我抛出以下异常:
System.Net.Sockets.SocketException (0xFFFDFFFF): Name or service not known
   at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)    
除了内部异常(exception):
System.Net.Http.HttpRequestException: Name or service not known
 ---> System.Net.Sockets.SocketException (0xFFFDFFFF): Name or service not known
   at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)
还有额外的调用堆栈,但我认为它没有用...
真正奇怪的是,如果我获取 URL ( http://myComputer.myDomain.net:44344/Testing/TestCall ) 并将其放入浏览器,它会在我的服务上运行调用并返回预期的输出。
为什么我会收到“名称或服务未知”异常,但相同的 URL 在浏览器中正常工作?
附加信息:如果我将 url 替换为 "http://google.com" ,然后它工作正常。这让我觉得这是我的服务。但是该服务从浏览器加载得很好......我很困惑。

最佳答案

我忘记了,因为我使用的是 docker 容器,所以我不能使用主机名和端口号让一个容器寻址另一个容器。
当我更换 myComputer.myDomain.net:44344使用在我的 docker 文件中找到的容器的主机名,一切都开始工作了。

关于c# - "SocketException: Name or service not known"当 URL 在浏览器中正常加载时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63712606/

相关文章:

asp.net-core - ASP.NET Core v3.1 应用程序真的可以独立吗?

c# - 计算 bool 数组中真(或假)元素的数量?

unit-testing - 替换 WebApplicationFactory 中的 DbContext 进行单元测试

asp.net-core - 忽略 NLog 日志中的 Microsoft.AspNetCore.* 消息

c# - 我应该在 visual studio 中的 wwwroot 下创建文件上传文件夹吗?

c# - 使用 Azure Functions 3.0 中的属性将 Enum 序列化为字符串

c# MongoDB (noRM) - 带有嵌入式文档的存储库模式

c# - Xamarin Forms IOS 打开 PDF

c# - 是否有可能通过 Npgsql 获取所有与数据库的连接?

C# foreach 循环迭代与查询执行时的列表