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