http://www.cnblogs.com/joey0210/archive/2012/09/29/2708420.html
上一篇文章說到了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;
學習交流群:364976091