“嘗試加載 Oracle 客戶端庫時引發 BadImageFormatException。如果在安裝 32 位 Oracle 客戶端組件的情況下以 64 位模式運行,將出現此問題。”


遠程連接服務器的數據庫調試WCF程序時,可以正常訪問數據庫,但將程序發布成站點部署在數據庫所在的服務器之后,一直報錯,通過try/catch捕獲得到以下報錯信息:

System.Exception: SELECT CODE,NAME,LEVEL FROM SYSUSER WHERE CODE=12345\u000d\u000a嘗試加載 Oracle 客戶端庫時引發 BadImageFormatException。如果在安裝 32 位 Oracle 客戶端組件的情況下以 64 位模式運行,將出現此問題。

根據報錯信息可以初步判斷,出錯原因是:項目中連接Oracle用的System.Data.OracleClient和服務器上安裝的Oracle客戶端位數不同。

本人根據網上提供的各種方法嘗試了很久:

  1. 將程序的平台目標改為X86
  2. 安裝Oracle 11gR2 32-bit的客戶端
  3. 在工具網站中設置對網站和項目使用IIS Express64位版
  4. ....

但都沒能解決問題。

最終我想既然是和程序的位數有關,於是死馬當做活馬醫,在IIS中將程序所在應用程序池中的“啟用32位應用程序”改為false,最終解決了問題。

此處建議新建一個應用程序池,不要直接修改DefaultAppPool,防止其它程序使用時需要啟用32位應用程序。

當然,可能每個人出現該錯誤的原因都有所不同,所以這里只是提供一種解決問題的思路,具體應根據實際情況尋找解決方案。

 

原文地址:https://www.cnblogs.com/imdeveloper/p/10652511.html
轉載請注明出處,謝謝!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 關於C#連接Oracle數據庫 嘗試加載Oracle客戶端時引發BadImageFormatException 如果在安裝32位Oracle客戶端組件的情況下以64位模式運行,將出現此問題 嘗試加載 Oracle 客戶端庫時引發 BadImageFormatException。如果在安裝 32 位 Oracle 客戶端組件的情況下以 64 位模式運行,將出現此問題。 嘗試加載 Oracle 客戶端庫時引發 BadImageFormatException。如果在安裝 32 位 Oracle 客戶端組件的情況下以 64 位模式運行,將出現此問題 嘗試加載 Oracle 客戶端庫時引發 BadImageFormatException。如果在安裝 32 位 Oracle 客戶端組件的情況下以 64 位模式運行,將出現此問題。 嘗試加載 Oracle 客戶端庫時引發 BadImageFormatException。如果在安裝 32 位 Oracle 客戶端組件的情況下以 64 位模式運行 嘗試加載 Oracle 客戶端庫時引發 BadImageFormatException。如果在安裝 32 位 Oracle 客戶端組件的情況下以 64 位模式運行 解決連接oracle報錯 嘗試加載Oracle客戶端庫時引發BadImageFomatException。如果在安裝64位Oracle客戶端組件的情況下以32位模式運行,將出現此問題的報錯。 webservice 嘗試加載 Oracle 客戶端庫時引發 BadImageFormatException。如果在安裝 32 位 Oracle 客戶端組件的情況下運行,將出現此問題 : 嘗試加載 Oracle 客戶端庫時引發 BadImageFormatException。如果在安裝 32 位 Oracle 客戶端組件的情況下以 64 位模式運行,將出現此問題。 ---> System.BadImageFormatException: 試圖加載格式不正確的程序。 如果在安裝32位Oracle客戶端組件的情況下64位模式運行, 將出現此問題.
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM