#c# #asp.net-core #asp.net-core-3.1
#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)
С внутренним исключением:
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"
, то он будет работать нормально. Что заставляет меня думать, что это моя служба. Но служба нормально загружается из браузера…. Я очень смущен.
Комментарии:
1. можете ли вы добавить свой
Startup.cs
код убедиться, что выSystem.Net.Http
импортировали или загрузили2. @Kardon63 — Это отлично работает для URL
http://google.com
. Так что это должно быть что-то в моем сервисе… Странно, что он просто отлично загружается из браузера.3. Это, скорее всего, связано с окружающей средой. Что произойдет, если вместо этого вы попытаетесь
System.Net.Ping
myComputer.myDomain.net
?
Ответ №1:
Я забыл, что, поскольку я использую контейнеры docker, я не могу, чтобы один контейнер адресовал другой контейнер, используя имя хоста и номер порта.
Когда я заменил myComputer.myDomain.net:44344
имя хоста контейнера, найденного в моем файле docker, все это начало работать.
Комментарии:
1. У меня такая же проблема, разница в том, что я не могу получить доступ » login.microsoftonline.com/568173fa-1eb8-4608-b9bd-36714706d7c6 / … » из моего .net Core 3.1, работающего в docker. Какое может быть решение, у вас есть какие-либо идеи?