#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, чтобы увидеть более подробную информацию