«Невозможно выполнить сетевой запрос» или «соединение отклонено» для Firebird только на одной машине - PullRequest
5 голосов
/ 14 апреля 2009

У меня, казалось бы, уникальная проблема только на одном компьютере в компании (должен был быть моим начальником). У меня есть программа от Borland C ++, которая использует TSQLConnection. Он подключается к локальному серверу Firebird 2.1.1.17910, работающему как приложение. Другие компьютеры работают нормально.

Он будет абсолютно не подключаться на этом одном лапе (локальном сервере) для чего угодно . Я помню, у него всегда были проблемы с InterBase, когда он был установлен. Я думаю, что он установил до 7,5 возможно. Это прошло, и я прошел и стер все старые GDS32.dll файлы и обновил их файлами FireBird, а соединение использует fbclient.dll в любом случае ...

Я попытался удалить и переустановить FB и запустить его в качестве службы. Не сработало

Я зашел в etc / services и добавил в этой строке:

gds_db           3050/tcp                           #Firebird

Без кубиков.

Вставка «localhost:» перед расположением базы данных приводит к этой ошибке

Невозможно выполнить сетевой запрос к хосту "localhost". Не удалось установить соединение.

Я проверил netstat, он слушает порт 12750.0.1 3050 ...

Попробовал вставить "127.0.0.1:" перед расположением базы данных, получаю:

соединение отклонено удаленным интерфейсом

Попытка полностью удалить 127.0.0.1 или localhost и просто использовать местоположение базы данных, которое является правильным местоположением, я получаю

Недоступная база данных.

точно такой же CD отлично работает на других машинах. Я попытался вставить «localhost», «127.0.0.1» и ничего перед входом в базу данных, и все нормально подключалось на других машинах.

Я заставил его выключить свой брандмауэр, все еще без игры в кости ... Эта проблема продолжается уже долгое время, и я нахожусь в конце моей веревки. Я перепробовал все, что только мог придумать. Он отлично работает на моем компьютере, на пустых тестовых компьютерах, для бета-тестеров ... всех, кроме моего босса. Любая помощь будет значительно оценена.

Ответы [ 10 ]

8 голосов
/ 14 апреля 2009

Я написал «Руководство по эксплуатации InterBase» еще в 1998 году, когда работал в Borland. Я пытался устранить неполадки, связанные с распространенными ошибками, связанными с подключением.

  • Отказ в соединении - это когда клиентское приложение вообще не может установить сетевое соединение с сервером IB / FB. Если брандмауэр блокирует соединения, это ошибка, которую вы получите.

  • Соединение отклонено - это когда сетевое соединение достигло сервера базы данных, но сервер базы данных решил прервать запрос на соединение. Причины этого включают в себя:

    • Вы ввели неверный путь к базе данных.
    • Вы указали неверное имя пользователя или пароль (т. Е. Они не соответствуют записям в isc4.gdb).
    • Каталог базы данных находится в сетевой файловой системе. Он должен находиться в файловой системе, которая физически локальна для ноутбука.
    • Процесс сервера базы данных не имеет разрешения на уровне файловой системы для чтения и записи файлов базы данных (включая isc4.gdb). Может ли антивирусное программное обеспечение или другая система безопасности файловой системы блокировать ввод-вывод для неавторизованных процессов?
5 голосов
/ 06 ноября 2011

У меня была "точно" та же проблема, сегодня 5 / 11-2011 и пошел работать довольно методично по этому вопросу. Искал в интернете подсказки и подсказки. Я попытался удалить мой Firebird 2. Я переустановил его. Та же ошибка сохранялась, когда я пытался использовать базу данных через Delphi. Я переименовал GDS32.DLL в папку system32 и скопировал его с другого компьютера, где все работало нормально. Все та же проблема. По какой-то причине всегда отказывается подключаться к базе данных.

Я проверил лог-файл Firebird и .. да. он всегда отказывается, но когда я использую IB-Console, я могу создать новую базу данных или работать с существующими.

Я решил сделать одну последнюю попытку и снова удалил Firebird. Затем я удалил остальную часть установки в programfiles \ firebird. Я сделал полную проверку реестра с помощью AML Free Registry Cleaner. (Я думаю, что большинство хороших подойдет)

Обнаружено около 1500 недействительных записей, и я просто решил "исправить все"

Когда закончил, я переустановил firebird 2. Установил его как сервер.

Вуаля.

Теперь я могу снова использовать базы данных IBqueries и SQL с Firebird при разработке программного обеспечения. Я думаю, что что-то не так с реестром Windows, хотя я не могу точно определить это.

Удачи и наилучших пожеланий. Мортен, Норвегия, очень поздний субботний вечер.

3 голосов
/ 22 сентября 2011

Для тех, у кого проблема с улыбкой. Распространенная проблема в 64-битных ОС: плохие копии GDS32.DLL и FBCLIENT.DLL находятся в каталоге C:\Windows\SysWOW64. Удалите FireBird, удалите все копии упомянутых библиотек из C:\Windows\System32 и C:\Windows\SysWOW64, а затем переустановите FireBird. Он создаст новые и действительные копии этих библиотек для 64-битных и 32-битных приложений.

2 голосов
/ 07 марта 2015

Я только что преодолел подобную проблему со старым клиентским приложением D7 Interbase, подключенным к Firebird 1.5.x на удаленном сервере Linux. Чтобы все заработало, я перенес структуру клиентских каталогов XP Interbase на рабочую станцию ​​Win7 x64 и написал запись в реестре, подобную следующей:

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Borland\InterBase\CurrentVersion]
"RootDirectory"="c:\\utils\\INTRBASE"

, который в моем случае необходим для поиска файла ib_licen.dat . Мигрированные инструменты IB также работали, но для них требовался правильный файл GDS32.DLL , который находился в каталоге system32 удаленной рабочей станции XP.

На активной рабочей станции Win7 я не стал искать и удалять файлы gds32.dll , тем более что в SysWow64 установлена ​​более новая, но несовместимая gds32.dll . Поэтому, чтобы порадовать D7 и приложение, я скопировал старый файл GDS32.DLL в те же каталоги, содержащие D7 ( delphi32.exe ) и скомпилированное приложение; не совсем практично, но выполнимо. DLL также была скопирована в каталог BDE для удобства использования bdeadmin.exe для поддержки соответствующего псевдонима Interbase.

Кстати, соединение отклонено удаленным интерфейсом сообщение, которое я получил через bdeadmin.exe , было симптомом несовместимости / отсутствия GDS32.DLL . При правильном GDS32.DLL было отображено следующее сообщение о лицензировании: продукт УДАЛЕННЫЙ ИНТЕРФЕЙС не лицензирован , что было решено с помощью вышеупомянутой записи реестра. Кроме того, Firebird и сеть не влияли на проблемы с подключением.

Еще один момент: ib_licen.dat поддерживал опцию R.

1 голос
/ 01 марта 2016

Другие, возможно, обнаружили это до меня, но когда я столкнулся с сообщением «Невозможно выполнить сетевой запрос к хосту« localhost ». Не удалось установить соединение «Я пришел к выводу, что есть большая вероятность, что это произошло из-за вмешательства вредоносного ПО или, возможно, PUP. Следовательно, я запустил Malwarebytes, который очистил почти 400 экземпляров этих вещей, в основном PUP, и после очистки ошибка исчезла. К сожалению, я не могу сказать, какой из экземпляров вредоносного ПО или PUP был виновным, но это был, безусловно, один из них. Таким образом, я хотел бы предложить, чтобы запуск Malwarebytes был хорошим первым шагом, прежде чем прибегнуть к чему-то более радикальному, например, переустановить продукт.

1 голос
/ 17 июля 2014

У меня была эта проблема на виртуальной машине XP. Я просто выключил Firebird, а затем выключил и запустил резервную копию машины Virtual XP. Запустил Firebird и проблема исчезла.

1 голос
/ 31 июля 2013

В моем личном случае я решил проблему путем резервного копирования / восстановления целевой базы данных.

1 голос
/ 02 мая 2012

Я решил удалить gds32.dll файл, который находился в той же директории моего .exe . Я предполагаю, что таким образом программа использует DLL, установленную где-то еще в системе, что, вероятно, более совместимо.

1 голос
/ 14 апреля 2009

Как указал Билл, сообщение «отклонено удаленным интерфейсом» означает, что TCP-соединение установлено правильно, но сам сервер Firebird отклонил соединение.
Проверьте файл firebird.log в папке \ bin сервера firebird.
Может содержать полезную информацию о том, почему сервер отклонил соединение.

0 голосов
/ 30 октября 2015

Вот решение этой проблемы:

Зайдите в сервисы и запустите сервисы Firebird. Должно быть две службы.

Приложение действительно запускается, но при попытке найти базу данных с использованием FB происходит сбой из-за того, что службы FB не запускаются. Ура .. Сисеко Букани

...