c# - 无法从 ADO.net 连接到 Firebird 服务器
问题描述
我最近下载了新的 Firebird 4 服务器并安装了它。它在我的 Windows 10 机器上作为服务运行。我可以使用 FB Maestro IDE 很好地连接到它,但是当我尝试从一些 ADO.NET 代码连接到它时,我得到一个错误。调用时(await connection.OpenAsync
实例在哪里):connection
FirebirdSql.Data.FirebirdClient.FbConnection
FirebirdSql.Data.Common.IscException: '登录时出错,详情请查看服务器 firebird.log'
查看服务器日志,我看到以下两个错误,重复多次:
DESKTOP-NAME Thu Jun 24 15:14:32 2021 身份验证错误 服务器上没有匹配的插件
桌面名称 2021 年 6 月 24 日星期四 15:14:35 INET/inet_error:读取 errno = 10054,客户端主机 = 桌面名称,地址 = 127.0.0.1/54653,用户 = Mason
我不知道这意味着什么,一些基本的搜索无法找到任何有用的东西。有谁知道我需要做什么来解决这个问题?
如果相关,我的连接字符串如下所示:
User=SYSDBA;Password=[我的密码];Database=[db name];DataSource=localhost;Port=3050;Dialect=3;Charset=UTF8;
再一次,我知道服务器工作正常,因为我可以使用 FB Maestro 连接到它。问题显然出在我的 .NET 代码中。我只是不知道在哪里!
解决方案
您使用的驱动程序不支持 srp256 并且 Firebird 4 服务器默认不支持其他任何东西。您必须编辑 firebird.conf 更改 AuthServer 参数以至少包含 srp 插件。之后不要忘记重新启动 Firebird 服务器。
推荐阅读
- android - Categories' 与属性 android:iconTint (attr) color 不兼容
- ios - 尝试将自定义单元格添加到表格视图中时出错
- sql - SQL整合数据最佳策略
- python - 彩色输出 python
- ruby - 在 Ruby 中用引号将数组的输出包装到 CSV 转换
- python-2.7 - 从 os.popen('cmd').read() 接收长度为 0 的字符串
- php - 使用 DataFixtures 在 WebTestCase 上进行 phpUnitTest 后的 TearDown 数据库
- maven - maven checkstyle 插件创建一个输出文件并且检查它失败
- linux - 服务
start 无法启动服务,servlet.log 中没有任何错误 - linux - 基于标签(声明式语法)触发从 bitbucket 到 Jenkins 的构建