发布的.NET程序崩溃

时间:2016-04-29 15:44:58

标签: c# exception crash

我有一个.NET应用程序,我已完成并在客户机器上运行。我得到报告,它偶尔会崩溃与Windows错误框

xxx程序已停止工作,一个问题导致程序停止正常工作。如果有可用的解决方案,Windows将关闭该程序并通知您。

我正在尝试跟踪此问题的根源。我认为这是一个未处理的例外,但我无法找到哪里。我正在寻找帮助来跟踪来源的输入。虽然程序是.NET,但我使用的是一些非托管资源,比如OPC和我写的一个小包装,但我觉得我很好地覆盖了编组。该应用程序几乎每周7天,每天24小时运行,目前可能每4-10天崩溃一次。

我正在考虑的一件事是订阅AppDomain.UnhandledExceptionEventHandler并将堆栈跟踪记录到文件中。这有可能吗?如何去做呢?

由于

1 个答案:

答案 0 :(得分:1)

我会创建一个日志记录系统。即使只是尝试捕获从页面获取基本错误。我之前使用过以下代码在服务器上存储日志文件。

public void logError(string errorString)
{
     try
     {
         // Takes unknown errors and logs them to the log file 
         string user = HttpContext.Current.User.Identity.Name.ToString();
         string FileLine = user + ", " + DateTime.Now.ToString() + ", " + errorString;
         string filename = HttpContext.Current.Server.MapPath("../Log/error_log.txt");

         using (System.IO.StreamWriter file = new System.IO.StreamWriter(filename, true))
         {
             file.WriteLine(FileLine);
             file.WriteLine("---------------------------------------");
         }
     }
     catch (Exception ex)
     {
        // send email, or another notification 
     }

}

你可以这样称呼:

try
{
   //function code
}
catch (Exception ex)
{                                                                                
   logError(ex.ToString());
}