我們有一個運行在WPF和Entity Framework之上的大型商業應用程序。問題是我們在過去的兩週內遇到問題,無法確定它的來源。如何從異常中獲取更多信息(隨機發生的C#WPF)?
異常正被困DispatcherUnhandledException,我們從異常(通過電子郵件)獲得的信息是這樣的:
mscorlib: Value cannot be null.
at System.Threading.Monitor.ReliableEnter(Object obj, Boolean& lockTaken)
at System.Threading.Monitor.Enter(Object obj, Boolean& lockTaken)
at System.Data.EntityClient.EntityConnection.ChangeConnectionString(String newConnectionString)
at System.Data.EntityClient.EntityConnection.Dispose(Boolean disposing)
at System.ComponentModel.Component.Finalize()
的異常被拋出「隨機」 4或5倍,每天只有來自我們擁有的20多個用戶中的一個。我們無法弄清楚問題所在!堆棧跟蹤沒有提供太多的信息,我們也無法重現問題。
我想這是一個線程發生的事情,但我不能確定線程導致異常,因爲我們有很多BackgroundWorkers和異步的東西!
那麼,我怎樣才能獲得有關異常的更多信息?
編輯:
沒有任何InnerExceptions。
此外,異常正在以分鐘爲間隔,然後小時拋出例如在:11時41分,11點46分,然後十一點51運行細直到18:03,18:07,18點11然後沒有例外拋出。這個分鐘間隔發生的時刻也是隨機的,與服務器或網絡上的任何負載無關。
是否有'InnerException'不通過電子郵件傳遞? –
不,所有捕獲到的異常都會隨其InnerExceptions一起發送(如果有的話)。 –
您的代碼中某處可能存在異常,並被框架中的某些回調隱藏。嘗試添加記錄異常的catch子句然後拋出;他們回到與WPF的聯繫點(例如在VM setter中,在命令實現中)。另外,如果可能的話,發送該客戶端匹配的PDB並嘗試遠程調試(使用Visual Studio遠程調試器)。 –