Asp.net using Oracle.DataAccess.dll access oracle 11g 64bit & x86


使用.net訪問oracle數據庫時一般需要在機器上安裝instantclient才能正常連接。

下面介紹一種不用安裝instantclient直接引用dll就用.net能連接oracle數據庫的方法:

1. 下載x86的ODAC1120320Xcopy_32bit包

使用x86的包是因為vs建立的asp.net項目默認指定的是x86的類庫,而且無論你將項目的target設置為64,或者x86使用的都是x86的類庫,image

如果你引用的Oracle.DataAccess.dll是64bit的話在運行的時候會報錯。

image

2. 將一下5個文件從壓縮包中拷貝出來。

image

其中Oracle.DataAccess.dll使用類庫引用方式,其余四個類庫是C++類庫,要使用添加鏈接的方式,並設置為拷貝到輸出目錄。

3. 在VS中調試網站。OK,可以正常訪問數據庫。

4. 將網站部署到64bit的OS的IIS7中是發現,又出現BadImageFormatException。

問題在於asp.net在vs中調試時使用的是x86的類庫,但是iis中卻使用的是65bit的類庫,導致了Oracle.DataAccess.dll無法加載。

要解決此問題只需要將網站的線程池設置為使用32位應用程序即可。

image

 

 

注意在Asp.net應用中將Target設置為Any Cpu可以正常運行,

但是在windows或者console程序中Target必須設置為x86或者64才能正常運行。


免責聲明!

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



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM