我有一个客户无法运行我们的程序而不会崩溃,并在事件日志中创建下面的错误。一如既往,它在我们的计算机上工作得很好(试过6+),但客户说,只要点击程序中的任何内容,他们就会得到以下错误。
EventType clr20r3,P1 datamonitor.exe,P2 1.0.0.3,P3 49dbd380,P4 datamonitor,P5 1.0.0.3,P6 49dbd380,P7 e9,P8 e5,P9 system.exception,P10 NIL
关于如何找到这样的问题的任何建议?
由于
答案 0 :(得分:1)
我怀疑客户端计算机上缺少一些必需的dll。要么他们使用的是不同的.Net版本,要么在构建项目的同时引用他们已安装但未安装的项目。我会仔细检查你是否已经包含了所有的依赖项,并尝试设置一台机器来复制客户端的配置,即相同的操作系统,相同的.Net版本等。这应该可以帮助您诊断问题。
答案 1 :(得分:1)
如果您无法隔离您抛出的异常,请查看客户是否允许您复制Runtime Debugger。它体积小,重量轻,可以捕获异常并找出它的来源。
答案 2 :(得分:0)
您可以通过向AppDomain.UnhandledExceptionEventHandler添加方法来添加代码以捕获代码中未处理的异常。
见这个例子:
http://shiman.wordpress.com/2008/11/18/c-net-exception-appdomainunhandledexception/
通过这种方式,您可以捕获此异常,并注销更多详细信息,以便继续操作。
答案 3 :(得分:0)
您是否有任何类型的登录应用程序?那将是我开始的地方,捕获异常并记录它。
另外,在任何地方抛出System.Exception似乎都不寻常,也许会搜索你的代码库(因为我记得,因为框架中的任何内容都应该抛出更具体的异常)。
答案 4 :(得分:0)
我只是在这种场景中挣扎,写了一篇博客文章谈论它。但基本上在你的情况下datamonitor.exe由于system.exception而崩溃。如果您使用IL Dissassembler,您可以查看它失败的类和方法。上述错误(e9)中的p7是您需要查找的功能。这可以通过使用IL Dissassembler在dll中搜索06000e9来找到。
http://corymathews.com/eventtype-clr20r3-p1-w3wp-exe-system-nullreferenceexception/