前言

小弟我最近有在協助公司新進人員排除一些 Oracle 資料庫連線問題,有碰到一個用 Sql Developer 可以連線,但是應用程式使用 ODP.NET 卻無法連線的情況…

. . .

狀況釐清

  1. 應用程式編譯目標平台為 Any CPU
  2. 已安裝 ODP.NET 64 位元版本

. . .

ODP.NET 問題

應用程式執行時丟出來的錯誤,感覺上是 Spring 在注入時有發生異常…

Application Throw Exception
Application Throw Exception

. . .

ODP.NET 問題排除

後來問了有經驗的同仁,他說可以確認看看 IIS Application Pool 的進階設定,其中裡面的啟用32位元應用程式是 True 還是 False。

修改前
修改前

如果這個設定被設定為 True,則須要安裝 32 位元版本相容的 ODP.NET,應用程式才可正常運行!

修改後
修改後

因為我的應用程式目標平台不是瞄準在 32 位元,所以就將此開關調整為 False,後來就能正常執行應用程式了。

. . .

結尾

之前就有稍微研究過 ODP.NET 是怎麼樣去連線 Oracle 資料庫,可參考下文…

💭 什麼是 Oracle Data Access Components?

結果還是被 ODP.NET 位元版本問題搞到不能自己_(┐「ε:)_

感謝各位花時間看完此篇小文,如果本文中有描述錯誤,還請各位指教。

本文目的是希望如果有遇到類似問題,可以嘗試藉此排除看看!節省一點時間…

參考

💭 【茶包射手日記】ODP.NET如何找對Oracle Client檔案?