CSh*_*ewb 3 c# ado.net firebird visual-studio 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
StackTrace:
位于C:\ Users\Jiri\Documents\devel\NETProvider\working\NETProvider\src中的FirebirdSql.Data.FirebirdClient.FbConnection.get_ServerVersion()\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
Run Code Online (Sandbox Code Playgroud)
要降级有线协议加密设置,您需要编辑或添加以下行firebird.conf:
WireCrypt = Enabled
Run Code Online (Sandbox Code Playgroud)
为了能够在旧版身份验证模型中创建用户,您需要通过编辑或添加以下行来启用旧版用户管理器插件firebird.conf:
UserManager = Srp, Legacy_UserManager
Run Code Online (Sandbox Code Playgroud)
上面的修改后,重新启动火鸟,连接(任何)火鸟3数据库使用SYSDBA或其他管理员帐户,您最喜欢的数据库管理工具,并使用该Legacy_UserManager与用户CREATE USER(更换用户名和密码legacy与合适的值):
CREATE USER legacy PASSWORD 'legacy' USING PLUGIN Legacy_UserManager
Run Code Online (Sandbox Code Playgroud)
确保提交,否则用户不是真正创建的.
现在,您应该能够使用刚创建的用户从C#连接.
Firebird 3发行说明,第12章兼容性问题,传统身份验证中也记录了这一点.
不建议使用gsec或使用服务功能来创建用户.如果您仍希望使用其中任何一个在旧版身份验证模型中创建用户,则需要先编辑firebird.conf并放在Legacy_UserManager列表中.
请注意,Firebird .NET提供程序版本5.0.0.0添加了对SRP的支持(无线协议加密).因此,从Firebird .NET提供程序版本5,您可以使用新的身份验证模型.只需确保将有线协议加密(设置WireCrypt)从Required(默认)降级到Enabled如上所述.
| 归档时间: |
|
| 查看次数: |
1852 次 |
| 最近记录: |