我在我的web應用程序中偶爾會看到以下錯誤(看起來隨機)。我們正在運行Windows Server 2008 R2,IIS 7.5,MVC3,.NET 4.5。定期看到ASP.NET錯誤CS0656:缺少編譯器所需的成員
這是同樣的錯誤每次:CS0656:缺少編譯器要求會員「Microsoft.CSharp.RuntimeBinder.Binder.BinaryOperation」
出現此錯誤時,它可以從一個帶走任何東西重新啓動應用程序池,重新安裝我們的應用程序本身,以解決它。
錯誤發生在全新的VM映像(以前沒有安裝過我們的軟件)以及之前安裝過我們的軟件的機器上。該錯誤可能發生在應用程序第一次運行時,或者當應用程序已經足夠長時間讓IIS應用程序池回收工作進程時(似乎是這樣)。
這變得很難處理,因爲我已經對這個錯誤進行了大量的研究,並嘗試了多種解決方案,沒有運氣。而且,發生錯誤的隨機頻率使得診斷非常困難。任何對這個問題的洞察,或對可能的解決方案的想法,將不勝感激。我願意嘗試幾乎所有的事情。
1)你可以附加一個調試器之一的測試虛擬機,並使其崩潰? 2)你在使用DLR嗎?通過BCL源文件查看,看起來類型名稱與動態操作相關聯。或者也許是MVC使用DLR? – 2013-04-05 23:10:09
你可以檢查使用的是什麼版本的Microsoft.CSharp.dll(使用諸如procexp之類的工具確定路徑),使用諸如.NET Reflector之類的工具打開它,並檢查BinaryOperation靜態方法是否存在?這可能是版本問題(編譯器期望更新版本的Microsoft.CSharp.dll) – 2013-04-06 07:05:08
您是否使用C#動態語言功能?無論如何,它看起來像一個CLR損壞。 – 2013-04-12 08:04:38