ORA-06413連接未打開的錯誤的原因和解決方法


轉自:http://liaozenghui.com/asp.net/2015/01/21/ORA-06413%E8%BF%9E%E6%8E%A5%E6%9C%AA%E6%89%93%E5%BC%80%E7%9A%84%E9%94%99%E8%AF%AF.html

有個網站程序,在64位機子上可以連接mssql,連不了oracle。把程序放在32位的機子上,mssql和oracle都可以連接。那么問題來了。

詳細描述:

啟動程序,查詢的時候,程序報錯ORA-06413連接未打

遇到這樣的提示,都無語了。講了等於什么都沒講。

解決過程: 省略,很操蛋的我沒能解決。最后請求大神指導。ps.網絡上說的什么’)’的原因這邊無效。

錯誤原因

先檢查下,連接Oracle是不是使用的dll是System.Data.OraceClient,如果是,那么問題就在這兒了。(如果不是,對不起,這篇文章幫不了你。)因為System.Data.OraceClient是非托管的,最終調用的是oracle客戶端的oci.dll來連接數據庫的。而oci.dll有分32位和64位。

最好的解決方法是把System.Data.OraceClient改為odp(用nuget安裝),因為odp是托管的,不需要調用oci.dll來連接Oracle。

但是如果沒法改的話(比如我,用別人的框架, 沒法改),那么參考下面的兩個解決方案。

解決方案一

代碼運行,默認用的是IIS Express,這貨沒法設置。改為IIS本地來運行開發。

  1. vs右擊啟動項,屬性,web,然后如圖
ORA-06413連接未打開的錯誤的原因和解決方法 - wybshyy - wybshyy的博客
 
  1. 在IIS中創建網站程序,自己定義端口號,然后吧啟動地址寫入到上圖的那個輸入框。
  2. 在IIS中,進入應用進程池,右擊新建的那個應用進程池,選中高級屬性,設置如圖

 

這樣就可以了,在vs中調試,就不會報錯了。

這個方法我試過,是可以的,但是大神也說了,這方法畢竟不是很好的。最好的就是替換成odp。

解決方案二

這個方法我試過,沒什么效果,但還是寫出來。因為可能是因為oci.dll版本的問題,所以下載這個文件:http://pan.baidu.com/s/1i39ruDJ

解壓后,把oci的路徑放在環境變量中。這個是oracle的客戶端。 ps.我馬馬虎虎的試過了,沒用,你看着辦。

2015-1-22補充: 方法二需要重啟,重啟之后就能用了。



免責聲明!

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



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