У меня есть .NET Core 2.1 API, который при запуске через Visual Studio в Windows получает HTTP GET из браузера и успешно возвращает данные из базы данных MySQL.
Я пытался добавитьAPI для контейнера Docker (внутри Ubuntu) - это сборки, но я не могу получить доступ к API из браузера:
Что я пробовал :
- Проверка доступных портов.Вот соответствующий вывод:
- Подключение с использованием другого браузера: в Chromium написано «Этот сайт не может бытьдостиг: localhost неожиданно закрыл соединение. '
- Тестирование неиспользуемых портов в браузере, чтобы увидеть, возвращает ли это другое сообщение - для Firefox неиспользуемые порты возвращают «Невозможно подключиться» вместо «Ошибка безопасного соединения », и в Chromium они возвращают« localhost отказался соединиться ».вместо «localhost неожиданно закрыл соединение».
- В Firefox настройте «security.tls.insecure_fallback_hosts» на «localhost».
- Двойная проверка правильности сопоставления портов в docker-compose.yml - в «портах» для соответствующего контейнера, 44329 сопоставлен с 44329.
- Выполнение запроса к БД при запуске API и регистрация результата: это успешно.Я запускаю
docker-compose up
, API запускается, подключается к контейнеру БД и записывает результат запроса SQL в текстовый файл.Таким образом, проблема вряд ли связана с базой данных. - Ведение журнала запросов GET: Внутри Windows запросы GET успешно регистрируются, но в контейнере Ubuntu Docker это не так.
Это может быть актуально: в Windows API работает правильно, только если вы запускаете его из Visual Studio.Если вы выполните dotnet webapi.dll
, вы получите этот вывод
...\netcoreapp2.1>dotnet webapi.dll
...
Now listening on: http://localhost:5000
Now listening on: https://localhost:5001
Application started. Press Ctrl+C to shut down.
Так что здесь он не работает на 44329;вместо этого он доступен через браузер 5001, где вы получаете это сообщение, которое совсем не холодно: Нажатие «ADVANCED» позволяет перейти к API.
- Так что я также попытался подключиться через 5001 в Ubuntu без удачи.
Вот вывод из 'docker-compose up':
matt@Matt-Ubuntu:~/docker2$ docker-compose up
Starting docker2_mysql_1 ... done
Starting docker2_dbmodelmapper_1 ... done
Attaching to docker2_mysql_1, docker2_dbmodelmapper_1
... (mysql stuff) ...
dbmodelmapper_1 | Hosting environment: Production
dbmodelmapper_1 | Content root path: /app
dbmodelmapper_1 | Now listening on: http://[::]:80
dbmodelmapper_1 | Application started. Press Ctrl+C to shut down.
Видя порт 80, я попытался подключиться к нему, но безуспешно.
Соответствующий контейнер, показанный docker ps
:
Какую проблему я здесь рассматриваю?