2017-10-06 146 views
0

當我在Windows Server 2012(IIS 8)上託管我的網站時,出現「無法加載文件或程序集xxx或其某個依賴項*********」錯誤。這裏的xxx是在我的本地VS 2015的應用程序工作在我的本地PC無法加載文件或程序集xxx或其某個依賴項。試圖加載格式不正確的程序。

這是一個VB.NET應用程序與Oracle數據庫12c的,因爲它的後端完全沒有我的項目名稱。

我試過的東西。 1.將Target CPU設置爲「Any CPU」並將其配置爲「Release-Any CPU」發佈 - 仍然是同樣的錯誤。 2.在服務器IIS中,我將應用程序的應用程序池上的啓用32應用程序設置爲True。這是一個不同的錯誤。 - 無法加載文件或程序集「Oracle.DataAccess」或其某個依賴項。試圖加載格式不正確的程序。

請幫忙。

+0

您是否檢查過IIS應用程序池中的框架版本? 1. IIS>應用程序池>選擇當前應用程序池。 2.檢查用戶(服務器)是否有權訪問組件所在的目錄。 – JFT

+0

嗨JFT,謝謝你的迴應。 .NET CLR版本是v4.0.30319。服務器通過IISUSRS訪問目錄? – ssuhas76

回答

0

聽起來像你的Oracle.DataAccess DLL是一個64位的DLL。您可以通過在Windows資源管理器中導航到\ windows \ assembly文件夾來查看Web服務器上加載的驅動程序。 enter image description here

大多數使用Any CPU選項構建的應用程序都會在項目設置中使用複選框來選擇32位。爲避免這種情況,請將項目的平臺目標更改爲64位。

enter image description here

那麼你並不需要「啓用32位」在您的應用程序池,你的問題應該消失。請讓我知道這可不可以幫你。

+0

嗨Dacke。非常感謝你的幫助。它現在有效。 我改變了平臺目標x64和同時發佈了我改變配置,以「釋放 - 64」。我可以在IIS上成功託管網站,並啓用32位。 但最後一個問題。我在Windows-> assembly中有3個版本的Oracle DataAccess。 1.版本-1.102.5.0 2.版本 - 2.121.2.0 3.版本 - 2.112.3.0 在winodws-> assembly的服務器上,我只有Oracle.DataAccess的版本,即版本2.121.2.0。這是正常的嗎? – ssuhas76

+0

是因爲你可以從我的截圖中看到我已經安裝在我的發展框三位車​​手。大多數應用程序服務器只會安裝一個。我已經採取措施來使之成爲一個可配置的屬性在我的應用程序的配置,這樣我可以容納他們在部署任何版本。您在IIS上的應用程序池中指出了 - 啓用了32位?如果你正在構建一個64位應用程序,你爲什麼要這樣做? –

+0

嗨Dacke,是的,我已經shouldn'y 32位啓用。我只是將這些建議作爲谷歌結果的一部分進行嘗試 – ssuhas76

相關問題