代码之家  ›  专栏  ›  技术社区  ›  alex

如何进行故障排除。NET应用程序会消失吗?

  •  9
  • alex  · 技术社区  · 16 年前

    如何对此应用程序进行故障排除?

    5 回复  |  直到 16 年前
        1
  •  5
  •   NT_    16 年前

    1) 将事件处理程序附加到 AppDomain.UnhandledException 事件并记录异常对象。

    AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
    

    2) 附加线程异常处理程序

    Application.ThreadException +=
      new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
    

    对于WPF和Silverlight应用程序,您可以使用更多的异常处理程序,例如Application。调度器未处理的异常和应用程序。未处理的异常分别,但在这种情况下,您对这些异常不感兴趣。为了完整起见,我将其包括在内。

        2
  •  3
  •   user1333 user1333    16 年前

    我们也遇到了类似的问题。我们为AppDomain举办了一个活动。未处理的异常,但它甚至跳过了这个。结果证明,这是我们测试剪贴板内容时引起的SystemAccessViolation。

    如果情况类似(例如跳过AppDomain.UnhandedException事件),那么我建议记录来自流程外部的互操作和“恶意”数据调用的所有内容,并对其进行代码审查。我们花了几个星期的时间才找到它,并进行了一次修改来修复它。

    此外,在VS中打开MDAs并用它运行程序,看看是否会出现错误。

        3
  •  2
  •   Nick Haslam    16 年前

    修改代码,在每个相关部分后包含日志步骤,然后检查日志文件以查看其去向。

    如果它甚至没有开始,那么这也会告诉你一些事情。..

        4
  •  0
  •   ewall    16 年前

        5
  •  0
  •   Shiraz Bhaiji    16 年前

    您可以尝试使用Elmah,这将记录几乎所有未处理的异常:

    http://www.hanselman.com/blog/ELMAHErrorLoggingModulesAndHandlersForASPNETAndMVCToo.aspx