ASP.NET最誤導人的錯誤提示:“未預編譯文件,因此不能請求該文件”,如何解決?
當前位置:點晴教程→點晴OA辦公管理信息系統
→『 經驗分享&問題答疑 』
昨天在一個ASP.NET MVC項目中,一個預編譯后的視圖訪問時總是報錯: 未預編譯文件,因此不能請求該文件(The file has not been pre-compiled, and cannot be requested) 而對應這個預編譯視圖的3個地方都正常: 1)內容為“這是預編譯工具生成的標記文件,不應刪除!”的.cshtml占位文件正常存在 2)對應的*.cshtml.7384d3d7.compiled文件正常 3)對應的App_Web_*.cshtml.7384d3d7.dll文件正常 百思不得其解,折騰了半天,后來實在沒辦法,放棄預編譯,改用動態編譯。 然后出現下面的錯誤信息才讓人恍然大悟: System.IO.FileLoadException: 未能加載文件或程序集“System.Web.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一個依賴項。找到的程序集清單定義與程序集引用不匹配。 (異常來自 HRESULT:0x80131040) 這個項目用的是MVC 5.2.2,而出問題的視圖中調用了一個依賴MVC 5.1的程序集。有了這個準確的錯誤信息,問題很輕松地就可以解決: 在web.config中添加如下的配置: <dependentAssembly> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.2.2.0" newVersion="5.2.2.0" /> </dependentAssembly> 如果不是放棄預編譯,改用動態編譯,做夢也想不到是這個原因引起的“未預編譯文件,因此不能請求該文件”。 你說這是不是ASP.NET中最誤導人的錯誤提示? 該文章在 2017/11/24 12:15:33 編輯過 |
關鍵字查詢
相關文章
正在查詢... |