June
7th,
2016
使用 C# 連線 Oracle 資料庫時,需要安裝 ODAC (Oracle Data Access Components),這元件有分 32 位元和 64 位元的版本,除了要用對版本外,不同的 Visual Studio 版本,也需配合不同的 ODAC 版本。
以為裝對版本就沒事了,正當要測試網站的時候,卻出現這個畫面:
Google 這個錯誤訊息 無法載入檔案或組件 'Oracle.DataAccess' 或其相依性的其中之一。 試圖載入格式錯誤的程式。
,找到的資料幾乎都是因為版本問題所以出現這狀況,讓我想到會不會是因為 IIS 的支援問題。
IIS Express 預設是使用 32 位元模式來執行,因此如果你的元件是 64 位元的時候,就無法正常運作,要怎麼知道目前所執行的 IIS Express 是用哪種模式執行呢?很簡單,開啟工作管理員
然後找到 IIS Express
這個處理程序就會知道了,如果是 32 位元的程序,他後面就會標註(32位元)
。
謎題解開一半了,再來就是如何開啟 64 位元模式。
Visual Studio 果真是地表上最強的 IDE,裡面的設定多如牛毛,好險有提供快速啟動
(Ctrl+Q),只要輸入 iis
就可以找到相關的設定選項。
接著來到工具
> 選項
> 專案和方案
> Web 專案
下,將這個選項將 64 位元版本的 IIS Express 用於網站和專案
勾起來,一切就大功告成了。
參考資料: