部署網站時的錯誤「one of its dependencies.試圖加載格式不正確的程序。」解決方案。

  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

相關文章
相關標籤/搜索