ADO.NET FirebirdSql.Data.FirebirdClient.FbException: "Unable to complete network request to host "

ADO.NET FirebirdSql.Data.FirebirdClient.FbException: "Unable to complete network request to host "

我在尝试将我的 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 服务器。我在另一个问题中找到了答案,想告诉你服务器没有互联网访问权限。

这是我得到的异常:

FirebirdSql.Data.FirebirdClient.FbException: "Unable to complete network request to host " No message for error code 335544721 found."

IscException: Unable to complete network request to host " No message for error code 335544721 found. IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host

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

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

[SQLState:28000, ISC error code:335544472] Your user name and password are not defined. Ask your database administrator to set up a Firebird login.

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

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

感谢 Mark Rotteveel 的评论让我找到了解决方案。
我可以使用默认密码“masterkey”进行连接,因此很明显 srp 用户是使用默认凭据创建的,因此无法与其他凭据建立连接。

我必须更正旧服务器中的用户。 感谢提示 ADO.NET 只支持 srp.