Проблемы с ASP.NET Основное приложение, подключающееся к PostgreSQL в контейнере Docker

#c# #asp.net #postgresql #docker #asp.net-core

#c# #asp.net #postgresql #docker #asp.net-core

Вопрос:

Я извлек и запустил контейнер для PostgreSQL на своем сервере Ubuntu с помощью Docker, используя инструкции из этих инструкций.

Используя Visual Studio на моей рабочей станции Windows 10, я разработал веб-страницу Blazor, которая подключается к контейнеру PostgreSQL docker на моем сервере Ubuntu с использованием Npgsql и использует его в качестве серверной части. В конечном итоге я использовал возможности создания образов docker в Visual Studio для преобразования моего развернутого ASP.NET приложение к контейнеру docker, которое я хочу запустить на том же сервере Ubuntu.

Запуск контейнера из Visual Studio, похоже, работает нормально, я успешно могу загрузить веб-страницу и могу использовать PostgreSQL в качестве своего сервера. Я также могу подключиться к серверу без использования Visual Studio, просто запустив развернутый образ как контейнер на своей рабочей станции.

Я хочу, чтобы веб-страница Blazor запускалась с того же сервера Ubuntu, что и мой контейнер docker PGSQL, но в разных контейнерах, чтобы я мог получить доступ к приложению с любого компьютера в моей локальной сети. Я поместил контейнер в свой репозиторий на Docker, а затем перенес его на свой сервер Ubuntu, чтобы он мог работать там.

Когда я запускаю контейнер приложений Blazor в Ubuntu, я продолжаю получать следующее исключение при загрузке страницы, которая обращается к данным из моего контейнера PGSQL:

 System.InvalidOperationException: An exception has been raised that is likely due to a transient failure.
 ---> Npgsql.NpgsqlException (0x80004005): Exception while connecting
 ---> System.TimeoutException: The operation has timed out.
  

Что я пробовал:

  • Запуск контейнера в той же сети («pgnetwork»), что и контейнер PGSQL.
  • При запуске контейнера я успешно смог подключиться к своей веб-странице на странице, которая не использует серверную часть PGSQL, но она по-прежнему выдает мне это исключение при загрузке страницы, которая это делает.
  • Установил ping для контейнера на моем сервере Ubuntu и проверил PGSQL контейнер. Каждый раз пинги были успешными.

Я относительно новичок в Docker и ASP.NET core, и я не специалист по ИТ, поэтому любая помощь или способы устранения неполадок были бы очень полезны.

РЕДАКТИРОВАТЬ: еще одна вещь, которую я попробовал: установка клиента psql в моем контейнере docker и попытка подключиться к контейнеру PGSQL, используя те же параметры, что и моя строка подключения в моей программе C #. Не удалось подключиться.

Комментарии:

1. Это может вам помочь: nickjanetakis.com/blog /…

2. Опубликуйте файл docker приложения .net core, чтобы увидеть более подробную информацию