2012-05-03 7 views
5

sto ottenendo il seguente errore quando si tenta di aprire il mio database PostgreSQL da un'utility di C#:problemi npgsql in C# app - Una connessione esistente forzatamente è stata chiusa dall'host remoto

System.IO.IOException: Impossibile per leggere i dati dal trasporto Connessione : Una connessione esistente è stata chiusa forzatamente dall'host remoto . ---> System.Net.Sockets.SocketException: Una connessione esistente veniva chiusa forzatamente dall'host remoto

Ho cercato di eseguire questo programma da un computer remoto e dal computer su cui il server PostgreSQL è in esecuzione .

Al momento non ci sono firewall su nessuno dei due computer e sono in grado di collegarmi al database e al server senza problemi con l'utilità di amministrazione postgres utilizzando la stessa password. Ho controllato che il nome utente abbia le autorizzazioni per il database.

Ecco il mio codice per la connessione:

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

Qualsiasi aiuto con questo sarebbe apprezzato.

+0

Qualcosa nel registro del server? –

+0

Il log del server è il posto più ovvio da cercare. Inoltre, non sono un programmatore C#, ma non ottieni uno stacktrace? Quale riga di codice ha causato l'eccezione? –

risposta

10

Ho trascorso un'ora di ricerca e non ho riscontrato problemi. Ma poi ci siamo resi conto che PG mette i suoi log nella cartella pg_log. Ci ho guardato per vedere un possibile problema.

Si scopre che è necessario disporre della voce "host" corretta nel file "pg_hba.conf". Per me questo file si trova nella directory C: \ Programmi \ PostgreSQL \ 9.1 \ data. Per esempio

ospite tutti tutti 192.168.1.2/32 md5

Dove 192.168.1.2 - è l'indirizzo IP del vostro cliente.

BTW, è ancora necessario avere la porta 5432 aperta come regola Inboud (Windows Vista, Windows 7, Windows 2008+).

+2

Grazie mille, questo è stato davvero un salvavita. – coffekid