.NET:Microsoft Visual Studio 2010 + .NET Framework 3.5
操作系統:windows2008 R2 64 位操作系統
oracle數據庫:32位的ODP.NET 2.0版本
FluroineFx:FluorineFx v1.0.0.15 (點擊可下載)
FluorineFx的應用程序,發佈到iis上時,報:”未能加載文件或程序集“Oracle.DataAccess”或它的某一個依賴項。試圖加載格式不正確的程序。“。
項目中的oracle提供的.net訪問oralcle數據庫的這個 Oracle.DataAccess.dll的複製本地沒有設置爲true(在項目引用裏找到該引用,右鍵屬性裏有這個”複製本地").所有發佈的時候,它不會自動複製到bin目錄裏。從而出現了上述未能加載的錯誤。如下圖所示:
要麼修改該項目中該引用屬性,要麼就直接把那個dll複製到發佈在服務器上的bin目錄裏。我的iis服務器是64位的,而我的 odp.net是裝的32.所以對應的 Oracle.DataAccess.dll也應該是32位的,這裏涉及iis的配置了。Oracle.DataAccess.dll是32位的,系統是64位的。
這個在iis裏有一個設置如下如:先看看項目使用的應用程序池是哪一個:
然後去應用程序池去配置,先找到Test應用程序池
右鍵高級設置
設置啓用32位應用程序 爲true
OK, 一切正常。
需要注意的是我這裏的Test應用程序池在基本設置裏面託管管道模式 選擇的是經典