2009-08-26 107 views
2

我一直在測試機器上獲取.NET Runtime 2.0錯誤(在事件日誌中報告),我傾向於在爲具有更多調試/診斷信息(或修復程序)的組件交換組件時得到這些錯誤, 。示例消息:(?我應該這樣做).NET運行時2.0錯誤

Faulting application MyApp.exe, version 1.0.0.66, stamp 4a3851fa, faulting module kernel32.dll, version 5.2.3790.4480, stamp 49c51f0a, debug? 0, fault address 0x0000bef7. 

我的猜測是,即使我很小心不改變接口,以這種方式交換組件是probaly的東西我不應該做

所有相同的,這個應用程序的安裝/構建過程是沉重的,它是一個巨大的痛苦重建和重新安裝時調試問題(事實上它只是不可fesable)的一切。有什麼方法可以從這些錯誤中獲得更多有用的信息嗎?

回答

1

這是由於應用程序遇到未處理的異常。

雖然可能在短期內更多的工作,你可以返工您的應用程序,包括跟蹤信息,並使用在System.Diagnostics namespace.

例如提供的工具,System.Diagnostics.Trace允許您通過配置指定(無變化在構建中)可以用於運行時跟蹤的不同偵聽器類。您可以使用它來實現至少可以幫助您縮小可能導致問題的功能的功能,並且只啓用測試機器上的跟蹤輸出。

此外,請確保您有一個乾淨的頂級異常處理程序。這可以幫助您至少在應用程序發生故障時發現一些堆棧跟蹤信息。

0

老的文章,但我只是有這個問題,這裏描述能夠追查通過遠程調試有問題的代碼: http://www.codeproject.com/Articles/146838/Remote-debugging-with-Visual-Studio-2010#_rating

類似的問題在這裏: .NET Winforms app dies on startup

在我來說,我有一個hanlder for treeview AfterSelect這是改變樹的選擇並導致另一個AfterSelect被調用等 - 導致的錯誤:stackoverflow。這似乎不會發生在其他機器上,所以可能與框架有關。

0

我有一個控制檯應用程序相同的問題;我通過從命令行啓動它來解決它,在那裏我可以看到錯誤的原因(在我的情況下,對DLL的訪問權限):

Unhandled Exception: System.IO.FileLoadException: Could not load file 
or assembly 'FHVI_Common, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null' 
or one of its dependencies. Access is denied. File name: 'FHVI_Common, Version=1.1.0.0, 
Culture=neutral, PublicKeyToken=null' ---> System.UnauthorizedAccessException: 
    Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)) 
    at xyzCL_Process.Main()