2015-10-19 1 views
0

Мне нужно подключиться к базе данных удаленно, то есть я использую свой компьютер и подключаюсь к компьютеру (используя подключение к удаленному рабочему столу). Затем я пытаюсь подключиться к базе данных psql, которая находится на другом сервере. Я могу подключиться к нему через Terminal (он работает), но я должен использовать его в своем сценарии C#. Я читал, что должен использовать Npgsql.dll (я загрузил Npgsql-2.2.3-net35). Для подключения к базе данных я писал:Npgsql conn.Open() не работает

 string connstring = "Host=xxx.xx.xxx.xxx;Port=5432;Database=yy;" 
       + "User=zz;Password=xxxxxx;CommandTimeout=20;Ssl=true;"; 

     NpgsqlConnection conn = new NpgsqlConnection (connstring); 
     if (conn != null && conn.State == ConnectionState.Closed) 
     { 
      Console.WriteLine ("Connection closed"); 
     } 
     else 
     { 
      Console.WriteLine ("Connection opened"); 
     }; 

     conn.Open(); 

     if (conn != null && conn.State == ConnectionState.Closed) 
     { 
      Console.WriteLine ("Connection closed"); 
     } 
     else 
     { 
      Console.WriteLine ("Connection opened"); 
     }; 

Когда я пытаюсь запустить мой сценарий, он не работает. Я не получаю никакой ошибки, но ничего после conn.Open() не возвращается. Я думаю, что это может быть вопрос о строке соединения, потому что когда я удаляю Ssl = true, я получаю FATAL: 28000: нет pg_hba.conf для хоста (здесь IP-адрес моего удаленного компьютера), пользовательский «zz», yy ", SSL выключен.

Является ли кто-нибудь, кто мог бы помочь мне решить мою проблему?

+0

Вы настроили приложение postgres для приема соединений с вашего IP-адреса? – Rob

+0

попробуйте использовать Visual Studios Server Explorer для подключения, то это предоставит вам строку подключения, к которой она была подключена, возможно, у вас просто неправильная строка соединения –

+0

@Rob Я не управляю этой базой данных (у меня нет прямой доступ к нему), но я могу подключиться к нему через Terminal. У меня есть аналогичная ошибка в Terminal before (FATAL: нет записи pg_hba.conf для хоста (здесь IP моего удаленного компьютера), пользователя «zz», базы данных «yy», SSL на FATAL: нет записи pg_hba.conf для хост (здесь IP моего удаленного компьютера), пользователь «zz», база данных «yy», отключена SSL и мастер сервера, добавлена ​​запись в pg_hba, и теперь она работает. Но мой скрипт не работает. – natalia

ответ

0

Я не знаю, если это помогает, но строка соединения, которые всегда используют для соединения с «Npgsql» выглядит следующим образом:

string strConnString = "Server=" + odbc.Server + ";Port=" + odbc.Port + ";Timeout=1024;CommandTimeout=1024;UserId=" + 
             odbc.UserName + ";Database=" + odbc.DataBase + ";Password=" + odbc.PassWord; 

      NpgsqlConnection myConnection = new NpgsqlConnection(strConnString); 

      myConnection.Open(); 
0

Добавить сервер pg_hba.conf файл что-то вроде:

# Type database  users  addressIP  auth.method 
    hostssl yy   zz  <Your IP>  md5 

 Смежные вопросы

  • Нет связанных вопросов^_^