[英]ADO.NET Data provider for Firebird in Visual Studio 2015
[英]Does Firebird ADO.NET 4.10.0.0 Data provider work with Firebird 3.0?
我目前正在尝试将我的ASP.net 4.5项目连接到最近发布的Firebird 3.0。
我正在使用Visual Studio 2015社区版,Firebird 3(64位),并使用NuGet来获取ADO.NET 4.10.0.0。
但是,当我尝试连接时,我收到以下消息的异常:
this.connect.ServerVersion抛出了类型'System.InvalidOperationException'的异常
我得到的其他一些消息:
消息:“连接已关闭”
来源:FirebirdSQL.Data.Fierbird.Client
堆栈跟踪:
at FirebirdSql.Data.FirebirdClient.FbConnection.get_ServerVersion()在C:\\ Users \\ Jiri \\ Documents \\ devel \\ NETProvider \\ working \\ NETProvider \\ src \\ FirebirdSql.Data.FirebirdClient \\ FirebirdClient \\ FbConnection.cs:第217行
IBExpert连接没有任何问题。
此环境以前与Firebird 2.5和较旧的ADO.Net一起使用
现在最好的猜测是,它不受支持,但我的在线研究尚无定论(从我能找到的,有迹象表明它是用Firebird 3 RC1测试的)
如果有人能指出我正确的方向来实现这一目标,那将是非常棒的。
提前致谢!
我假设您安装了Firebird 3并且没有修改任何配置,我正在回答这个问题。 默认情况下,Firebird 3的安装将具有一些严格的安全设置:
这意味着尚不支持SRP身份验证模型和有线协议加密的驱动程序(如Firebird .NET提供程序4.10)将无法立即连接。
为了能够连接,您需要执行以下操作
这些步骤都需要编辑firebird.conf
。 如果您将Firebird安装到Program Files
,则需要确保您的编辑器以管理员身份运行才能保存更改。
要启用旧版身份验证,您需要编辑或添加以下行到firebird.conf
:(注意前缀为#
是注释!)
AuthServer = Srp, Legacy_Auth
要降级有线协议加密设置,您需要编辑或添加以下行到firebird.conf
:
WireCrypt = Enabled
为了能够在旧版身份验证模型中创建用户,您需要通过编辑或向firebird.conf
添加以下行来启用旧版用户管理器插件:
UserManager = Srp, Legacy_UserManager
完成上述更改后,重新启动Firebird,使用您最喜欢的数据库管理工具使用SYSDBA或其他管理员帐户连接到(任意)Firebird 3数据库,并使用带有CREATE USER
的Legacy_UserManager CREATE USER
(用适当的值替换legacy
用户名和密码):
CREATE USER legacy PASSWORD 'legacy' USING PLUGIN Legacy_UserManager
确保提交,否则用户不是真正创建的。
现在,您应该能够使用刚创建的用户从C#连接。
Firebird 3发行说明,第12章兼容性问题,传统身份验证中也记录了这一点。
不建议使用gsec
或服务功能来创建用户。 如果您仍希望使用其中任何一个在旧版身份验证模型中创建用户,则需要编辑firebird.conf
并将Legacy_UserManager
放在Legacy_UserManager
第一位。
请注意,Firebird .NET提供程序版本5.0.0.0添加了对SRP的支持(无线协议加密)。 因此,从Firebird .NET提供程序版本5,您可以使用新的身份验证模型。 只需确保将有线协议加密(设置WireCrypt
)从Required
(默认)降级为Enabled
,如上所述。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.