今天在AspDotNetStorefront做定制化開發,編譯的時候莫名其妙地報告Could not load file or assembly 'App_Licenses, Version=0.0.0.0, Culture=neutral, ... (Exception from HRESULT: 0x80070057 (E_INVALIDARG))的錯誤,檢查文件系統,發現文件還在,然後查看文件夾權限,也沒有發現任何異樣。於是Google。網上很多網友給出解決方案,比如:重啟/重裝ASP.NET,設置Network Service權限等等,結果無功而返。
後來我發現,不僅僅是這個App_Licenses.dll無法加載,就算我從References中刪去這個引用,仍然會提示其它的DLL也無法加載的情況。而且,我重新安裝一份新的AspDotNetStorefront應用也出現同樣的問題。很明顯,不是我解決方案本身的問題。
突然想起之前有過機器異常重啟的經歷,我估計是在異常重啟的過程中造成了文件丟失或者損壞,於是先用iisreset/stop停止IIS服務,然後打開ASP.NET的臨時文件夾(在32bit,.NET 2.0中,是%Windows Install Folder%\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files),刪除所有的文件和文件夾,再iisreset/start後,編譯解決方案,一切正常。
這問題其實不復雜,但真正碰到這樣的問題解決起來也挺難的。在此隨筆一下,也希望能夠幫到遇到同樣問題的網友。