Postgresql: No connection could be made because the target machine actively refused it Postgresql: No connection could be made because the target machine actively refused it postgresql postgresql

Postgresql: No connection could be made because the target machine actively refused it


It does sound like this isn't really a Postgres problem (hence no changes in DB stats you're checking), rather that the traffic is being stopped by the server. Possibly because traffic on that port is saturated while handling your load testing queries?

It doesn't sound like you're hitting any of the Azure resource limits (including the database limits if that applies to your setup?), but without more detail on your load tests it's hard to say exactly what is needed.

Solutions from around the web and other SO answers suggest:

  • Disable TCP autotuning and tweak the TCP/IP registry keys on the server, e.g. set TcpAckFrequency - see this article for details
  • Make TCP setting adjustments (like WinsockListenBacklog) - which may be affected by whether connection pooling is in use or not - see this MS support article, which is for SQL Server 2005 but has some great tips on troubleshooting rejected TCP/IP connections (using Network Monitor, but applies to newer tools)
  • Faster request processing if you have enough control of the server - source
  • Disabling network proxying (in your load testing app): <defaultProxy> <proxy usesystemdefault="False"/> </defaultProxy> - source


Most possible reason is a Firewall/Anti-virus:

  • Software/Personal Firewall Settings
  • Multiple Software/Personal Firewalls
  • Anti-virus Software
  • LSP Layer
  • (Virtual) Router Firmware

Does your current Azure infrastructure contain Firewall or Anti-virus ?

Additionally on doing some additional searches, it looks like this is a standard Windows "connection refused" message, which suggests that PostgreSQL is trying to connect to something and being refused.

Also possible that one network element in your network - assuming that you are still connected to the server - will delay or drop somes DB login/authentication network packets (considered for example as a fake auth.replay) ...

You may also use a packet analyzer (like Wireshark) to record/inspect network flow when the error appear.

Regards


I was facing the same issue in my AspNet core application while I was trying to connect the Postgresql from my application. The error was thrown in the Program.cs file when I was calling the Migrate function.

public static void Main(string[] args) {    try {        var host = BuildWebHost(args);        using(var scope = host.Services.CreateScope()) {            // Migrate once after app is started.            scope.ServiceProvider.GetService <MyDatabaseContext>().Migrate();        }        host.Run();    }    catch(Exception e) {        //NLog: catch setup errors        _logger ? .Error(e, "Stopped program because of exception: ");        throw;    }}

To fix this problem I did the following steps.

  1. Check whether the Postgresql service is running by going to the services.msc
  2. Tried to login to the pgAdmin with the user and password I provided in the database context

Everything was file, and as you know that 5432 is the default port of Postgresql and somehow I was using a different port in my application connection string, changing it to 5432 fixed this issue for me.

"ConnectionString": "User Id=postgres;Password=mypwd;Host=localhost;Port=5432;Database=mydb;"