尝试将我的 C# 程序连接到现有的 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 服务器。我在另一个问题中找到了答案,并想告诉您服务器没有互联网访问权限。 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] 您的用户名和密码未定义。请您的数据库管理员设置 Firebird 登录。
我很确定用户名和密码是正确的。我不使用默认密码,而是使用带有@符号的密码,可能与此有关。
我现在有 2 个可以连接的程序(Delphi 和 C++),还有两个不能连接的程序(C# 和 Java)。有没有人有任何线索或调整如何更改我可以连接到服务器的连接?