仅在一台计算机上“无法完成Firebird的网络请求”或“拒绝连接”

时间:2009-04-13 21:33:51

标签: sql odbc firebird c++builder

我在公司的一台电脑上有一个看似独特的问题(必须是我老板的)。我有一个使用TSQLConnection的Borland C ++程序。它连接到作为应用程序运行的本地Firebird服务器2.1.1.17910。其他电脑工作正常。

绝对不会连接任何的这个lappy(本地服务器)。我记得在安装时它总是遇到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测试人员......除了我的老板之外的所有人都可以正常工作。任何帮助都将非常赞赏。

10 个答案:

答案 0 :(得分:8)

我在1998年为Borland工作时创作了“InterBase操作指南”。我试图解决与常见连接相关的错误的故障排除。

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

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

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

答案 1 :(得分:5)

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

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

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

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

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

瞧。

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

祝你好运和最好的问候。 挪威莫滕,周六晚很晚。

答案 2 :(得分:3)

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

答案 3 :(得分: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 )和已编译应用程序的相同目录中;不完全实用但可行。 DLL也被复制到BDE目录,以方便使用 bdeadmin.exe 来维护相应的Interbase别名。

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

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

答案 4 :(得分:1)

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

答案 5 :(得分:1)

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

答案 6 :(得分:1)

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

答案 7 :(得分:1)

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

答案 8 :(得分:1)

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

答案 9 :(得分:0)

以下是此问题的解决方案:

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

应用程序确实启动但是在尝试使用FB找到数据库时,由于FB服务未启动而失败。 干杯...... Siseko Bukani