未能加載文件或程序集“Oracle.DataAccess”或它的某一個依賴項。試圖加載格式不正確的程序。


      上一篇文章說到了DLL引用問題,主要是說的程序中如果使用過了反射,則反射創建對象的dll必須放在web應用程序的bin目錄里。今天又遇到了一個類似的問題,mvc3的應用程序,發布到iis上時,報:”未能加載文件或程序集“Oracle.DataAccess”或它的某一個依賴項。試圖加載格式不正確的程序。“。原因很簡單,因為我發的時候,我項目中的oracle提供的asp.net訪問oralcle數據庫的這個 Oracle.DataAccess.dll的本地復制沒有設置為true(在項目引用里找到該引用,右鍵屬性里有這個”本地復制").所有發布的時候,它不會自動復制到bin目錄里。從而出現了s上述未能加載的錯誤。好吧!既然這樣,那我要么該項目中該引用屬性,要么就直接把那個dll復制到發布在服務器上的bin目錄里吧。我復制進去后,問題又來了,還是暴未能加載一個引用項。后來一想我iis所在的服務器是64的,而我的  odp.net是裝的32.所以對應的 Oracle.DataAccess.dll也應該是32位的,這里涉及iis的配置了。
     dll有了,32位的,系統是64位的。這個在iis里有一個設置如下如:

先看看項目使用的應用程序池是哪一個:
 

然后去應用程序池去配置


設置啟用32位應用程序 為true
 
OK搞定。再瀏覽 一切正常。

這里還記錄下MVC3應用程序在iis7中的部署需要注意的地方:

1.添加MVC解析 

 

首先確保ASP.NET MVC3已安裝好,然后檢查站點的處理程序映射,看是否存在下列映射:

ExtensionlessUrlHandler-Integrated-4.0

ExtensionlessUrlHandler-ISAPI-4.0_32bit

ExtensionlessUrlHandler-ISAPI-4.0_64bit

如果映射存在,請檢查應用程序是否分配給了.NET Framework4.0的應用程序池。

如果映射不存在,你可以以管理員運行下面的命令注冊:

32位機器:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i

64位機器:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i

 

 

 2.然后檢查 bin目錄里是否有System.Web.Mvc。dll.沒有的話,拷進來,或者是按上面說的方法去重新生成下項目。

3.ASP.NET版本選擇4.0.30196; 
 


免責聲明!

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



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