簡體   English   中英

在64位計算機上以32位模式運行Oracle客戶端

[英]Run Oracle Client in 32-bit mode on a 64-bit machine

我剛剛從32位Windows 7桌面遷移到64位Windows 7筆記本電腦。 我們正在開發一個包含解決方案中大約60個項目的C#程序。 我在嘗試構建時遇到以下錯誤:

Attempt to load Oracle client libraries threw BadImageFormatException. This problem will occur when running in 64 bit mode with the 32 bit Oracle client components installed

顯然這個錯誤是非常自我解釋的,我試圖讓我的整個解決方案以32位模式加載。 我已經完成了每個項目,並將目標平台設置為x86,但我仍然遇到此錯誤。 我搜索過谷歌並看到了無數不同的方法,但我似乎無法解決這個問題。 確保我的項目在64位計算機上以32位模式運行的最佳方法是什么?

我正在使用Visual Studio 2008.我目前正在考慮降級到32位,但我真的想避免這樣做。

我發現即使您在64位計算機上運行,​​也必須安裝32位Oracle客戶端(您可以從他們的網站下載安裝程序 )。

此外,在討論期間,人們討論的是32位模式等。這是您可以檢查/設置IIS 7托管應用程序的方法。 您不需要更改此內容,但我已在此處添加了完整性/將來參考。

  • 啟動IIS 7並展開服務器名稱節點。
  • 單擊Application Pools節點,找到您正在使用的應用程序池。
  • 在右側面板上,單擊“ 高級設置”...
  • 在出現的彈出框中,選中“ 啟用32位應用程序”設置,這是從頂部開始的第三個選項。

您必須將主.exe文件更改為僅以32位運行。 您可以在Visual Studio中執行此操作 - 只需將Platform目標從“Any CPU”更改為“x86”即可。

如果無法做到這一點,請使用corflags.exe強制現有的exe為32位應用程序。

幾個月來我一直在努力解決這個問題,最后解決了這個問題。 我認為所有帖子都有幫助,但我有一個缺失的部分。 我沒有用於用戶DSN或系統DSN的Oracle ODBC實例設置。 我正在使用Windows 8機器。 所以對我來說,我不得不去一般的Windows搜索並輸入ODBC並打開ODBC數據源管理器(32位)。 檢查用戶DSN選項卡或系統DSN選項卡上是否有Microsoft ODBC for Oracle設置。 如果沒有,請單擊“添加”,然后選擇“Microsoft ODBC for Oracle”。 填寫您要點擊的數據源的信息,然后單擊“確定”。 確保重新啟動計算機,這最終對我有用。 希望這有助於你們中的一些人。

在我的情況下,我的機器上安裝了64位Oracle客戶端,但仍然出現相同的錯誤。 所以,我已經分析了在我的應用程序中轉到應用程序右鍵單擊轉到 - >屬性 - > Web選項卡,如果您使用的是本地IIS Web服務器,則取消選中“使用IIS Express”選項。 問題解決了。

您必須將主.exe文件更改為僅以32位運行。 您可以在Visual Studio中執行此操作 - 只需將Platform目標從“Any CPU”更改為“x86”即可。 https://msdn.microsoft.com/en-us/library/ms185328.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM