ADO.NET FirebirdSql.Data.FirebirdClient.FbException:“无法完成对主机的网络请求”

问题描述

在尝试将我的 C# 程序连接到现有的 Firebird 服务器时,我遇到了一个非常奇怪的问题。

首先,这可以使用 https://github.com/FirebirdSQL/NETProvider/blob/master/Provider/docs/ado-net.md 处的 Firebird 文档中的默认连接示例进行重现

using (var connection = new FBConnection("database=192.168.0.150:c:\\Data\\demo.fdb;user=sysdba;password=m@sterkey"))
{
    connection.Open();
    using (var transaction = connection.BeginTransaction())
    {
        using (var command = new FbCommand("select * from demo",connection,transaction))
        {
            using (var reader = command.ExecuteReader())
            {
                while (reader.Read())
                {
                    var values = new object[reader.FieldCount];
                    reader.GetValues(values);
                    Console.WriteLine(string.Join("|",values));
                }
            }
        }
    }
}

当我在我的机器上时一切正常,我也可以连接到我同事 PC 上的 Firebird 服务器。

但是我无法连接到其他开发服务器上的 Firebird 服务器。我在另一个问题中找到了答案,想告诉您服务器无法访问 Internet。 https://stackoverflow.com/a/57569057/2785084

这是我得到的例外:

FirebirdSql.Data.FirebirdClient.FbException:“无法完成 对主机的网络请求“未找到错误代码 335544721 的消息。”

IscException:无法完成对主机的网络请求“无消息 找到错误代码 335544721。 IOException:无法从中读取数据 传输连接:现有连接被强行关闭 通过远程主机

我已经更新到 Firebird 的最新稳定版本。我可以保证服务器正在运行并且没有防火墙阻止我的连接,因为当我尝试连接我们旧的 Delphi 程序时,一切正常。我还可以使用来自 Flamerobin.org 的轻量级 Firebird 管理工具 Flamerobin 进行连接,我认为它是用 C++ 编写的。

当我尝试连接 DBeaver 时,我收到以下消息:

[SQLState:28000,ISC 错误代码:335544472] 您的用户名和 密码未定义。请您的数据库管理员设置一个 火鸟登录。

我很确定用户名和密码是正确的。我不使用默认密码,而是使用带有@ 符号的密码,可能与此有关。

我现在有 2 个可以连接的程序(Delphi 和 C++),还有两个不能连接的程序(C# 和 Java)。有没有人有任何线索或调整如何更改我可以连接到服务器的连接?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)