.NET运行时2.0错误

.NET运行时2.0错误,.net,.net,我一直在测试机器上获取.NET Runtime 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 0x000

我一直在测试机器上获取.NET Runtime 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.
我的猜测是,即使我小心地不改变接口,以这种方式交换程序集可能是我不应该做的事情(我应该这样做吗?)


尽管如此,该应用程序的安装/构建过程非常繁重,并且在调试问题时重建和重新安装所有内容是一件非常痛苦的事情(事实上,这是不可行的)。有没有办法从这些类型的错误中获取更多有用的信息?

这是由于应用程序遇到未处理的异常

虽然短期内可能需要做更多的工作,但您可以重新编写应用程序,以包含跟踪信息并使用中提供的工具

例如,允许您通过配置(内部版本中没有更改)指定可用于运行时跟踪的不同侦听器类。您可以使用它来实现功能,这些功能至少可以帮助您缩小可能导致问题的范围,并且只在测试机器上启用跟踪输出


另外,确保您有一个干净的顶级异常处理程序。这至少可以帮助您在应用程序出现故障时发现一些堆栈跟踪信息。

以前的文章,但我刚刚遇到了这个问题,并且能够通过远程调试跟踪出现问题的代码,如下所述:

类似问题如下:


在我的例子中,我有一个treeview AfterSelect的handler,它正在更改树的选择,并导致调用另一个AfterSelect,等等-结果是错误:stackoverflow。这似乎不会发生在其他机器上,因此可能与框架有关。

我在控制台应用程序中遇到了同样的问题;我通过从命令行启动它解决了这个问题,在命令行中我可以看到错误的原因(在我的例子中,是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()