5

我在公司的一台计算机上遇到了一个看似独特的问题(必须是我老板的)。我有一个来自 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,它正在监听 127.0.0.1 端口 3050...

尝试在数据库位置之前粘贴“127.0.0.1:”,我得到:

远程接口拒绝连接

尝试完全取出 127.0.0.1 或 localhost 并仅使用数据库位置,这是正确的位置,我得到了

不可用的数据库。

完全相同的 CD在其他机器上也能正常工作。我尝试粘贴“localhost”、“127.0.0.1”,并且在数据库位置前面什么都没有,并且在其他机器上都可以正常连接。

我已经让他关闭了防火墙,仍然没有骰子......这个问题已经持续了很长时间,我已经走到了尽头。我已经尝试了我能想到的一切。它在我的电脑上运行良好,空白测试电脑,对于 beta 测试人员......除了我老板之外的所有人。任何帮助将不胜感激。

4

10 回答 10

8

早在 1998 年,当我在 Borland 工作时,我就撰写了“InterBase Operations Guide”。我试图解决与连接相关的常见错误的故障排除。

  • 拒绝连接是指客户端应用程序根本无法完成与 IB/FB 服务器的网络连接。如果防火墙阻止了连接,这就是您会得到的错误。

  • Connection Rejected是指网络连接到达数据库服务器,但数据库服务器决定终止连接请求。原因包括:

    • 您输入了错误的数据库路径。
    • 您指定了错误的用户名或密码(即它们与 中的条目不匹配isc4.gdb)。
    • 数据库目录位于网络文件系统上。它必须位于笔记本电脑的物理本地文件系统上。
    • 数据库服务器进程没有文件系统级别的权限来读取和写入数据库文件(包括isc4.gdb)。是否有防病毒软件或其他文件系统安全阻止未经授权的进程的 I/O?
于 2009-04-13T22:05:12.870 回答
5

2011 年 5 月 11 日,我现在遇到了“完全相同”的问题,并且非常有条不紊地解决了这个问题。在互联网上搜索提示和技巧。我尝试卸载我的 Firebird 2。我重新安装了它。当我尝试通过 Delphi 使用数据库时,同样的错误仍然存​​在。我在 system32 文件夹中重命名了 GDS32.DLL,并从另一台一切正常的计算机上复制了它。还是一样的问题。由于某种原因总是拒绝连接到数据库。

我检查了 Firebird 的日志文件,然后……是的。它总是拒绝,但是当我使用 IB-Console 时,我可以创建一个新数据库或使用现有数据库。

我决定做最后一次尝试并再次卸载 Firebird。然后我删除了 programfiles\firebird 中的其余安装。我使用 AML Free 注册表清洁器进行了完整的注册表检查。(我认为大多数好人都会这样做)

它发现了大约 1500 个无效条目,我决定“全部修复”

完成后,我重新安装了 firebird 2。将其安装为服务器。

瞧。

我现在可以在我的软件开发中再次使用 IBqueries 和 SQL 数据库和 Firebird。我最好的猜测是 Windows 注册表出了点问题,尽管我无法确定这一点。

祝你好运和最好的问候。Morten,挪威,一个非常晚的星期六晚上。

于 2011-11-05T22:44:19.910 回答
3

对于那些有微笑问题的人。64 位操作系统上的一个常见问题:GDS32.DLL 和 FBCLIENT.DLL 的错误副本在C:\Windows\SysWOW64目录中。卸载 FireBird,从两者中删除所有提到的库副本,C:\Windows\System32然后C:\Windows\SysWOW64重新安装 FireBird。它将为 64 位和 32 位应用程序创建这些库的新的和有效的副本。

于 2011-09-22T19:50:28.773 回答
2

正如比尔指出的“被远程接口拒绝”消息意味着 TCP 连接已正确建立,但 Firebird 服务器本身拒绝了该连接。
检查firebird服务器 \bin 文件夹中的 firebird.log 文件。
它可能包含有关服务器拒绝连接的原因的有用信息。

于 2009-04-14T00:54:57.407 回答
2

我刚刚通过连接到远程 linux 服务器上的 Firebird 1.5.x 的旧 D7 Interbase 客户端应用程序解决了类似的问题。为了让事情顺利进行,我将 XP Interbase 客户端目录结构迁移到 Win7 x64 工作站,并编写了类似于以下内容的注册表项:

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

在我的情况下,这是定位ib_licen.dat文件所必需的。迁移的 IB 工具也可以工作,但需要正确的GDS32.DLL文件,该文件位于已退役 XP 工作站的 system32 目录中。

在活动的 Win7 工作站上,我没有费心去寻找和删除gds32.dll文件,尤其是因为我在 SysWow64 中安装了更新但不兼容的gds32.dll 。因此,为了让 D7 和应用程序满意,我将较旧的GDS32.DLL文件复制到包含 D7 ( delphi32.exe ) 和已编译应用程序的相同目录中;不完全实用但可行。为了方便使用bdeadmin.exe维护相应的 Interbase 别名,该 DLL 也被复制到 BDE 目录中。

顺便说一句,我通过bdeadmin.exe收到的远程接口消息拒绝的连接是不兼容/缺少GDS32.DLL的症状。安装正确的GDS32.DLL后,将显示以下有关许可的消息:​​产品 REMOTE INTERFACE 未获得许可,已通过上述注册表项解决。此外,Firebird 和网络也不是导致连接问题的因素。

另一点:正在使用的ib_licen.dat支持 R 选项。

于 2015-03-07T05:14:13.970 回答
1

我解决了删除与.exe 位于同一目录中的gds32.dll文件的问题。我想通过这种方式程序使用安装在系统其他地方的DLL,这可能更兼容。

于 2012-05-02T09:36:35.423 回答
1

在我个人的情况下,我通过备份/恢复目标数据库解决了这个问题。

于 2013-07-31T06:11:58.170 回答
1

我在虚拟 XP 机器上遇到了这个问题。我只是关闭了 Firebird,然后关闭并开始备份 Virtual XP 机器。重新启动 Firebird,问题就消失了。

于 2014-07-17T14:45:13.307 回答
1

其他人可能在我之前就发现了这一点,但是当我遇到消息“无法完成对主机“localhost”的网络请求时。无法建立连接' 我得出结论,这很有可能是由于恶意软件或 PUP 的干扰。因此,我运行了 Malwarebytes,它清理了近 400 个这些东西的实例,主要是 PUP,清理后错误消失了。不幸的是,我不能说哪个恶意软件或 PUP 实例是有罪的一方,但它肯定是其中之一。因此,我想建议运行 Malwarebytes 将是一个很好的第一步,然后再采取更激烈的措施,例如重新安装产品。

于 2016-03-01T10:27:52.740 回答
0

这是此问题的解决方案:

转到服务并启动 Firebird 服务。应该有两个服务。

应用程序确实启动了,但是当尝试使用 FB 定位数据库时,由于未启动 FB 服务而失败。

于 2015-10-30T07:07:48.400 回答