當我在Visual Studio 2013中調試我的Web站點項目時,我嘗試將一個Session項目轉換爲特定類型(ZZZZ)時出現問題。從會話狀態讀取時發生InvalidCastException異常
return (ZZZZ) Session["SessionItem"];
一種引發InvalidCastException具有以下內容
「」類型發生在 App_Code.axv-bzrg.dll的例外,但是在用戶代碼 附加信息沒有處理:無法投射「XXX.YYYY.ZZZZ」類型的對象來鍵入「XXX.YYYY.ZZZZ」。
我加了一個監視項目的
(WebUser) Session["LoggedInUser"]
其次爲顯示在手錶的價值部分:
類型「XXX.YYYY.ZZZZ」在這兩個存在'App_Code.axv-bzrg.dll' 和 'App_Code.ys_ymegf.dll'
我導航到臨時ASP.NET Files文件夾
C:\用戶_________ \應用程序數據\本地的\ Temp \臨時ASP.NET 文件\ ROOT \ dc8aa7ce \ b2661c39
而兩個DLL文件都在那裏。我認爲App_Code DLL是在每個頁面請求上生成的,但是前面的DLL不會被刪除,從而導致Temp目錄中有兩個重複的類型。爲什麼會發生這種情況,我該如何解決這個問題?
停止IIS並清除所有\ Temporary ASP.NET Files \常常修復它。更少的清潔/重建修復它。 – MatthewMartin
你是對的,但我無法阻止IIS或每次重建(這將是不可能的調試)。此外,刪除臨時文件是可能的,但非常煩人和非生產性。另外,我沒有這個項目的Clean選項。任何猜測爲什麼這可能是? – alex
乾淨的解決方案應該在上下文菜單上。 Clean會重新編譯所有內容,包括Visual Studio認爲不需要重新編譯的內容。 這已經有一段時間了,但有時會發生這種情況,因爲動態編譯器不喜歡在標記中設置指令。 另一個更激進的解決方案是從Web站點切換到WebApplication,它具有更可預測的編譯/更少古怪,特別是隨着項目規模變大。 – MatthewMartin