I am getting the following exception in C# Visual Studio 2022/.NET6 when I try to connect PostgreSQL running as a Docker container:
How I am installing PostgreSQL as Docker container
Step 1 - Install Postgres
docker pull postgres
docker run --name gb-postgres -e POSTGRES_PASSWORD=xxxxxx -d postgres
Step 2 - Once Postgres is installed you need to find out your instance IP address
Run
docker ps
copy the {id of the container} of the container and run
docker inspect {id of the container}
copy the IPAddress of the container
Step 3 - Configure API
Use IP address in your Program.cs
Exception
Npgsql.NpgsqlException (0x80004005): Failed to connect to 172.17.0.3:5432
---> System.TimeoutException: Timeout during connection attempt
at Npgsql.Internal.NpgsqlConnector.Connect(NpgsqlTimeout timeout)
at Npgsql.Internal.NpgsqlConnector.Connect(NpgsqlTimeout timeout)
at Npgsql.Internal.NpgsqlConnector.RawOpen(SslMode sslMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken, Boolean isFirstAttempt)
at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|203_1(NpgsqlConnector conn, SslMode sslMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken, Boolean isFirstAttempt)
at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
at Npgsql.PoolingDataSource.<Get>g__RentAsync|28_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
at Npgsql.NpgsqlConnection.<Open>g__OpenAsync|45_0(Boolean async, CancellationToken cancellationToken)
at Npgsql.NpgsqlConnection.Open()
at Program.Main(String[] args) in D:\data\code\Dust-IO\388013gb3\cloud\API\GB3API\ConsoleApp1\Program.cs:line 14
C# Program
using System;
using Npgsql;
class Program
{
static void Main(string[] args)
{
string connectionString = "Host=172.17.0.3;Database=GB3;Username=postgres;Password=xxxxx";
using (var connection = new NpgsqlConnection(connectionString))
{
try
{
connection.Open();
Console.WriteLine("Connected to PostgreSQL database.");
// Perform database operations here
connection.Close();
Console.WriteLine("Connection closed.");
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
Console.ReadLine();
}
}
Even when I try to connect using Visual Studio 2022 extension Npgsql PostgreSQL Integration
, I get an error Exception while connecting
. And when I try to connect using VS Code extension PostgreSQL by Chris Kolkman
, I get an error to connect ETIMEDOUT 172.17.0.2:5432
.
docker inspect
"Networks": {
"bridge": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"NetworkID": "d9371cf11864c75a9c35d03ce24bf90bb78af8f44b43e6336b0630a6d79d9503",
"EndpointID": "b235ae6eb713404f9fbbcd35453acb6e9dcb213ad6d51fa8809272912a569e15",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.3",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:11:00:03",
"DriverOpts": null
}