2012-05-03 12 views
5

ich die folgende Störung erhalte, wenn ich meine Postgresql-Datenbank von einem C# Dienstprogramm zu öffnen:Npgsql Probleme in C# app - Eine vorhandene Verbindung wurde vom Remotehost geschlossen

System.IO.IOException: Nicht imstande, Daten von der Transport Verbindung zu lesen: Eine bestehende Verbindung wurde zwangsweise durch den Remote-Host geschlossen. ---> System.Net.Sockets.SocketException: Eine bestehende Verbindung wurde vom Remotehost geschlossen

Ich habe versucht, dieses Programm von einem entfernten Computer ausgeführt wird und von dem Computer, auf dem der Postgresql-Server läuft .

Derzeit gibt es auf keinem der beiden Computer Firewalls und ich kann mit dem Administrator-Dienstprogramm postgres mit dem gleichen Passwort eine Verbindung zur Datenbank und zum Server herstellen. Ich habe überprüft, dass der Benutzername Berechtigungen für die Datenbank hat.

Hier ist mein Code für die Verbindung:

public bool updateFromServer() 
{ 
    try 
    { 
     NpgsqlConnection conn = new NpgsqlConnection(connString); 
     conn.Open(); 
     conn.Close(); 
     return true; 
    } 
    catch (Exception e) 
    { 
     conn.close() 
     return false; 
    } 
} 

Alle mit dieser Hilfe würde geschätzt.

+0

Alles im Serverprotokoll? –

+0

Das Serverprotokoll ist der offensichtliche Ort, um zu schauen. Auch ich bin kein C# -Programmierer, aber erhalten Sie nicht einen StackTrace? Welche Codezeile hat die Ausnahme verursacht? –

Antwort

10

Ich hatte eine Stunde damit verbracht, dasselbe zu suchen und fand keine Probleme. Aber dann wurde klar, dass PG seine Logs in den Ordner pg_log legt. Ich schaute hinein, um das mögliche Problem zu sehen.

Es stellt sich heraus, Sie müssen nur korrekte "Host" Eintrag in "pg_hba.conf" -Datei haben. Für mich befindet sich diese Datei im Verzeichnis C: \ Programme \ PostgreSQL \ 9.1 \ data. Zum Beispiel

Gastgeber alle alle 192.168.1.2/32 md5

Wo 192.168.1.2 - Ihr Client die IP-Adresse ist.

BTW, Sie müssen immer noch 5432 Port als Inboud Regel geöffnet haben (Windows Vista, Windows 7, Windows 2008+).

+2

Vielen Dank, das war wirklich ein Lebensretter. – coffekid

Verwandte Themen