我遇到了一個非常奇怪的Web應用程序問題。我有一個標記爲「任何CPU」的平臺目標應用程序,但是當我通過IIS運行它時,出現以下錯誤:App_Code正在編譯爲32位模式並放置在Framework64臨時文件中
無法加載文件或程序集'file:/// C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files \ root \ ea146e97 \ e5f133b2 \ App_Code.dsbuukid.dll'或其依賴項之一。試圖加載格式不正確的程序。
它看起來像這個問題是由該DLL被編譯爲32位模式,其中我的IIS服務器是64位只。我已通過在該戴爾上運行corflags.exe工具並獲得以下證實:
Microsoft(R).NET Framework CorFlags Conversion Tool。版本4.0.30319.17929 版權所有(c)Microsoft Corporation。版權所有。
版本:v4.0.30319 CLR部首:2.5 PE:PE32 CorFlags:0x3 ILONLY:1 32BITREQ:1 32BITPREF:0 簽名:0
我可以通過設置工人解決這個進程允許32位應用程序,但我更願意修復這個問題並允許應用程序以64位模式運行。
我試過刪除我的臨時文件多次,以及重新啓動機器和iis幾百次,但每次dll編譯它在32位模式。
有誰知道這是怎麼發生的?什麼是app_code編譯過程的責任?