![](/img/trans.png)
[英]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.