2012-05-03 91 views
5

C#のユーティリティからの私のPostgreSQLデータベースを開こうとしたときに、私は次のエラーを取得しています:Npgsqlのトラブル - 既存の接続はリモートホストに強制的に切断された

System.IO.IOException:できません。トランスポートからデータを読み取る場合 接続:既存の接続がリモートの ホストによって強制的に閉じられました。 ---> System.Net.Sockets.SocketException:既存の接続 は強制的に私は、リモートコンピュータからとPostgreSQLサーバが動作しているコンピュータからこのプログラムを実行しようとしているリモートホスト

によって閉鎖されました。

この時点でどちらのコンピュータにもファイアウォールはなく、同じパスワードを使用してpostgres管理ユーティリティを使ってデータベースとサーバーに接続できます。ユーザー名にデータベースに対するアクセス許可があることを確認しました。ここで

は、接続のための私のコードです:

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

これで任意の助けをいただければ幸いです。

+0

サーバーログには何もありませんか? –

+0

サーバログは見た目の明白な場所です。 また、私はC#プログラマーではありませんが、スタックトレースを取得しませんか?どのコード行で例外が発生しましたか? –

答えて

10

私は同じ検索をしても何の問題も見つけられませんでした。しかし、PGがそのログをpg_logフォルダに入れることに気付きました。私は可能性のある問題を見るためにそれを調べました。

「pg_hba.conf」ファイルに正しい「ホスト」エントリが必要です。私の場合、このファイルはC:\ Program Files \ PostgreSQL \ 9.1 \ dataディレクトリにあります。例

ホストの 192.168.1.2は、すべてのすべての192.168.1.2/32 MD5

- クライアントのIPアドレスです。

ご存知のとおり、インポートルール(Windows Vista、Windows 7、Windows 2008+)として5432ポートを開く必要があります。

+2

ありがとう、これは本当に命を救う人でした。 – coffekid

関連する問題