.NET 2.0上的kernelbase.dll中存在c#错误

.NET 2.0上的kernelbase.dll中存在c#错误,c#,.net,debugging,C#,.net,Debugging,在某些机器上,我的应用程序出现以下错误。我想知道调试这个问题的最佳方法是什么-没有记录任何东西,所以看起来故障发生在我的代码库之外(毫无疑问是由我所做的事情引起的!) 日志名称:应用程序 来源:应用程序错误 日期:2012年1月25日下午2:23:29 事件编号:1000 任务类别:(100) 级别:错误 关键词: 用户:不适用 计算机: 说明: 故障应用程序名称:,版本:2.0.0.64,时间戳:0x4f1f54ed 故障模块名称:KERNELBASE.dll,版本:6.1.7601.1765

在某些机器上,我的应用程序出现以下错误。我想知道调试这个问题的最佳方法是什么-没有记录任何东西,所以看起来故障发生在我的代码库之外(毫无疑问是由我所做的事情引起的!)

日志名称:应用程序
来源:应用程序错误
日期:2012年1月25日下午2:23:29
事件编号:1000
任务类别:(100)
级别:错误
关键词:
用户:不适用 计算机:
说明: 故障应用程序名称:,版本:2.0.0.64,时间戳:0x4f1f54ed 故障模块名称:KERNELBASE.dll,版本:6.1.7601.17651,时间戳:0x4e2111c0 异常代码:0xe0434f4d 故障偏移量:0x0000d36f 出错进程id:0x%9 错误应用程序启动时间:0x%10 正在出错的应用程序路径:%11 发生故障的模块路径:%12
报告Id:%13

错误代码0xe0434f4d用于CLR异常

要进行调试,您可以了解崩溃转储和WinDbg。下面是ASP.NET的一个示例,但如果您知道如何为其他类型的.NET应用程序捕获崩溃转储,则转储分析工作流是相同的


如果这些机器可靠地(不是5%的时间)生成此错误,您是否尝试在这些机器上附加远程调试器?(如果可能的话)这至少会让你知道问题出在哪里。还有一些细节也不会有什么影响,这个应用程序是做什么的,你使用的是P/Invokes,COM还是你可能托管在另一个应用程序中,发布或调试版本等。这就是当一个应用程序由于未捕获的托管异常而崩溃时会发生的情况。当然,托管应用程序崩溃的最常见原因。通过为AppDomain.CurrentDomain.UnhandledException编写事件处理程序并记录e.ExceptionObject.ToString()的值,改进错误处理。几乎总是足以指出问题。谢谢Hans-前两行代码如下:AppDomain.CurrentDomain.UnhandledException+=新的UnhandledExceptionEventHandler(CurrentDomain\u UnhandledException);Application.ThreadException+=新的ThreadExceptionEventHandler(Application\u ThreadException);我想不出为什么它没有抓住它。