如何解决URL在浏览器中正常加载时,出现“ SocketException:名称或服务未知”
我有以下代码:
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)
内部例外:
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,CancellationToken cancellationToken)
还有其他的调用堆栈,但我认为它没有用...
真正奇怪的是,如果我使用URL(http://myComputer.myDomain.net:44344/Testing/TestCall
)并将其放在浏览器中,它将很好地在我的服务上运行调用并返回预期的输出。
为什么我会收到“名称或服务未知”的异常,但在浏览器中可以正常使用相同的URL?
其他信息:如果我将URL替换为"http://google.com"
,则可以正常工作。这使我认为这是我的服务。但是该服务可以从浏览器中正常加载。...我非常困惑。
解决方法
我忘记了,因为我使用的是Docker容器,所以我不能让一个容器使用主机名和端口号来寻址另一个容器。
当我用docker文件中找到的容器的主机名替换myComputer.myDomain.net:44344
时,一切都开始工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。