據MSDN,有一個「提示」指出,在重負載下運行併發垃圾收集.NET應用程序(無論是<gcConcurrent enabled="true"/>
或指定,因爲它是默認的行爲)可能會拋出一個ExecutionEngineException。有沒有人知道一個Microsoft知識庫文章或其他來源提供了額外的背景?爲什麼併發GC有時會導致ExecutionEngineException(每個MSDN)?
我們已經與基於3.2 NHibernate的Windows服務應用程序,這將至多幾個小時的手術後,總是崩潰直接經歷過這個。我們能夠追蹤到ISession.Flush()調用的異常。
有上nhusers報告似乎是同樣的問題thread。儘管切換到隱式禁用併發GC的服務器模式GC(<gcServer enable="true"/>
),他建議的解決方法是禁用併發GC,但它仍然有效。
提交這MS作爲一個bug之前,我想看看是否有任何人有尖端提到了並行GC instablity的附加信息。
鑑於它被記錄在案,您的錯誤可能會被視爲「按設計」關閉。除此之外,有趣的問題。 – vcsjones
@Nick Jones:.NET 4.0文檔也將其列爲過時,並聲明運行時不再拋出此異常。 – casperOne
@casperOne:注意到,但是NH 3.2是針對.NET 3.5編譯的。 –