Я пытаюсь подключиться к базе данных PostgreSQL
из моего приложения C# так:Npgsql: сервер или плохой пароль?
NpgsqlConnection MyConnection = new
NpgsqlConnection("Server=localhost;Port=5432;User Id=postgres;Password=mypassword;Database=mydatabase;");
try
{
MyConnection.Open();
}
catch (NpgsqlException pe)
{
//Code "28P01" = user name or password is wrong
// server ip or port is wrong
}
вопрос: NpgsqlException.code не делает различий между следующими условиями:
- номер сервера IP/порт неправильно
- имя пользователя и пароль сочетание неправильно
код «28P01» возвращается в обоих случаях. очевидно, что Npgsql может видеть, что сервер присутствует и отвечает некоторыми данными, указывающими на неправильное имя пользователя или пароль (условие № 2 выше), или, похоже, там нет (условие № 1)
как я могу различать эти 2 случая в моем коде?
вы можете попытаться вручную открыть TCP-соединение ... –
yup, но это только скажет мне, что что-то слушает в этом порту. я бы не сказал, что слушает. например там может быть база данных MySQL! –