Sever Error in '/' Application.Could not load file or assembly 'SresBase' or one of its dependencies.試圖加載格式不正確的程序。安全
今天同事在部署網站時遇到了一個這樣的錯誤,請我幫他看看。解決完後,我以爲這個問題仍是比較常見的,因此記錄在這裏,供後來的讀者方便地解決本身的相同或相似的問題。服務器
問題截圖以下:(固然這是在IIS裏面直接訪問網站纔會出現的「錯誤詳情頁」,若是是遠程訪問,出於保護安全的須要,您須要設置您的WebConfig中的<customErrors mode="Off"/>)架構
錯誤信息提示:「未能成功加載'SresBase'文件或程序集,或其相關依賴項」。通過檢查網站目錄下的Bin目錄發現「SresBase.dll」是有的。網站
可是爲何仍是報錯呢?我想文件是有的,「file or assembly」,那必定是程序集未能加載成功。也就是說程序集加載失敗。怎麼本機能夠運行可是程序集加載失敗呢?spa
我立馬想到了,我一再強調的一個問題:「服務器通常是64位的,生成你的項目時必須注意你的目標平臺架構爲:‘AnyCpu’」。因爲這個dll是另一個同事單獨寫給咱們的,我讓這位同事檢查這個dll的「生成目標平臺」——果真!生成目標平臺上設置的是「X86」。3d
把目標平臺設置成「AnyCpu」後,問題輕鬆解決了。項目(按Alt+Enter)屬性中更改「目標平臺」設置界面以下:blog
問題總結:說白了這就是個把只能在32位機上運行的程序集拿到64位機運行,出現的低級錯誤!若是您不當心也犯了這個錯誤,那麼您能夠看一下您的全部項目屬性裏面「目標平臺」和您的部署網站的IIS環境是否相同的。或者爲了不再有相似的麻煩,您能夠將您平時全部項目的目標平臺都設置成「Any Cpu」。ci