2012-05-03 23 views
5

estoy recibiendo el siguiente error al intentar abrir la base de datos PostgreSQL desde un C# utilidad:problemas Npgsql en aplicación de C# - Una conexión existente forzosamente fue cerrada por el host remoto

System.IO.IOException: No se puede para leer datos de la conexión de transporte: el host remoto cerró por la fuerza una conexión existente. ---> System.Net.Sockets.SocketException: Una conexión existente forzosamente fue cerrada por el host remoto

He tratado de ejecutar este programa desde un equipo remoto y desde el equipo en el que el servidor PostgreSQL se está ejecutando .

No hay firewalls en ninguna computadora en este momento y puedo conectarme a la base de datos y al servidor muy bien a través de la utilidad de administración de postgres usando la misma contraseña. He comprobado que el nombre de usuario tiene permisos para la base de datos.

Aquí está mi código para la conexión:

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

sería apreciada Cualquier ayuda con esto.

+0

¿Algo en el registro del servidor? –

+0

El registro del servidor es el lugar obvio para buscar. Además, no soy un programador de C#, pero ¿no obtienes stacktrace? ¿Qué línea de código causó la excepción? –

Respuesta

10

Pasé 1 hora buscando lo mismo y no encontré problemas. Pero luego se dio cuenta de que PG pone sus registros en la carpeta pg_log. Lo busqué para ver un posible problema.

Resulta que solo necesita tener la entrada "host" correcta en el archivo "pg_hba.conf". Para mí, este archivo se encuentra en el directorio C: \ Program Files \ PostgreSQL \ 9.1 \ data. Por ejemplo

host all all 192.168.1.2/32 md5

Donde 192.168.1.2 - es la dirección IP del cliente.

Por cierto, todavía necesita tener el puerto 5432 abierto como regla de Inboud (Windows Vista, Windows 7, Windows 2008+).

+2

Muchas gracias, esto fue un salvavidas realmente. – coffekid

Cuestiones relacionadas