2014-02-07 24 views
2

我正在尋找超過12小時,以找到一個適當的解決方案,這個特定的問題... 我有一個ASP MVC(.NET框架4.5)應用程序,利用Interbase XE數據庫。ADO.NET 2.0 Interbase驅動程序和ASP.NET錯誤的程序集引用?

只要我在我自己的機器上本地運行它,它就能正常工作。然而,當我嘗試將網站發佈到我的遠程服務器上,我得到一些組裝錯誤...

無法加載文件或程序集「Borland.Data.DbxCommonDriver, 版本= 16.0.0.0,文化=中立,PublicKeyToken = a91a7c5705831a4f'或 其依賴關係之一。找到的程序集清單定義 與程序集引用不匹配。 (異常來自HRESULT: 0x80131040)

除了在看張貼在互聯網(這並沒有爲我幫助不幸)在每一個可能的解決方案。我還在Reflector中打開了Borland.Data.DbxCommonDriver.dll。

讓我吃驚的還有,就是反射指出的版本我已經(包括本地和遠程!!)有公鑰= 91d62ebb5b0d1b1b,而不是a91a7c5705831a4f,所有其他設置是相等的(包括VERSIONNUMBER 16.0.0.0 )。

所以我做的下一件事是追蹤服務器上的所有可能的.dll文件。我卸載了ADO.NET 2.0驅動程序,並刪除了所有現有的dll。 只要服務器沒有任何DLL,我就重新啓動它並重新安裝ADO.NET 2.0以獲取Interbase驅動程序。

但是,我立即得到了相同的程序集錯誤。現在,我有點想法...

  1. 如何顯示錯誤,顯示不同的PublicKeyToken?
  2. 我是否需要將東西放在web.config文件中(以強制使用程序集等)?
  3. 如何確定引用錯誤的PublicKeyToken的位置?

NOTES:

的servermachine是一個64位機。這意味着我已經將ApplicationPool設置爲接受32位應用程序,以便支持來自Embarcadero的ADO.NET 2.0驅動程序。

我用MS Visual Studio 2012 Pro開發了我的web應用程序。

資源:

https://forums.embarcadero.com/message.jspa?messageID=528498 http://docs.embarcadero.com/products/interbase/IBXEUpdate5/Readme.html

回答

2

終於在幾個星期後,我設法解決了這個問題。 原來是一個簡單的解決方案,因爲簡單的解決方案往往是最難找到的...

事實證明,Embarcadero RAD Studio具有Borland.Data.DbxCommonDriver.dll,Borland.Data.AdoDBXClient .dll和本地安裝的Borland.Data.DBXInterBaseDriver.dll。這些DLL的版本號與Embarcadero提供的ADO.NET 2.0驅動程序提供的DLL版本號不同。我通過在Windows註冊表中執行搜索來追蹤這一點。所以,如果你正面臨着一個相同的問題,找出哪些驅動程序註冊在註冊表中找到他們的確切位置......

去除對ADO.NET 2.0驅動程序(通常安裝在C指向的引用後:\ Embarcadero \ Interbase_ADO.NET),並設置對位於Embarcadero RAD Studio安裝文件夾的DLL的引用,事情仍然在本地工作。

發佈網站後,它仍然無法正常工作。所以我從machine.config文件中刪除了每個引用並更新了web應用程序的web.config文件。最後,我在我的web應用程序(在this Embarcadero knowledgebase article中聲明)旁邊部署了文件'dbxconnections.ini'和'dbxdrivers.ini'。

清理服務器後,我做了另一個web應用的發佈,它的工作原理! 然而,這些Borland.Data.DbxXXX驅動程序有很多不同版本可用,但事情可能會變得棘手,以便真正找出錯誤。

儘管我仍然懷疑面對這個特定問題的程序員並不多,但我仍然認爲發佈我的解決方案可能會很方便。我希望它可以幫助:)

0

我有同樣的問題(你貼在我的線程)

也許這CNA有所幫助:http://docs.embarcadero.com/products/rad_studio/radstudio2007/RS2007_helpupdates/HUpdate4/EN/html/devcommon/deployingadodbxclient_xml.html

我太新手尋找PublicKeytoken ..但也許你可以用這個來解決你的項目!

+0

我已經知道了這一建議,但它仍然沒有幫助我很多。我一直下去:) – RvdV79

+0

同樣在這裏^^是我找到的東西,我一定會讓你知道 :) – Docschnitzel

相關問題