2011-04-18 7 views
2

로드 중 앱이 다운되는 경우가 있습니다. 일부 컴퓨터에서만 예외가 발생하지 않고 창 "보고서 보내기"대화 상자 만 표시됩니다.시작 도중 앱이 다운 됨 - 예외없이 "보고서 보내기"만 가능

응용 프로그램을 중단시키는 원인에 대한 자세한 정보를 얻을 수있는 방법이 있습니까? 은 "보고서를 보내기"대화 상자에서 , 그냥이 :

프로그램 응용 : evox.wpfclient.exe
프로그램 버전 : 1.0.0.0
모듈 이름 : kernel32.dll에서 모듈 버전 : 5.1.2600.5781
오프셋 : 00012afb

+0

필요한 .NET 버전이 설치되어 있지 않은 경우에도 유사한 충돌이 발생했습니다. – Arvo

답변

1

응용 프로그램이 시작될 때 가장 먼저해야 할 일은 System.AppDomain.CurrentDomain.UnhandledException 이벤트에 가입 해보십시오. 이벤트 처리기에서 응용 프로그램이 실제로 중단되기 전에 예외를 기록 할 수 있습니다.

로깅없이 응용 프로그램이 계속 충돌하는 경우 .NET Framework에서 문제 일 수 있습니다. 이 경우 Windows 관리 도구 이벤트 뷰어에 이벤트가 표시되어야합니다.

참고 : UnhandledException 이벤트를 사용하여 로깅 한 다음 중단해야합니다. 복구를 시도하지 말고 계속 실행하십시오.

3

응용 프로그램을 시작하는 클래스에서 AppDomain.CurrentDomain.UnhandledException 이벤트를 처리하십시오. 보통 program.cs.

시작 파일에 기본 클래스

static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) 
     { 
      if (e.ExceptionObject is Exception) 
       _logger.FatalException("Unhandled exception", (Exception)e.ExceptionObject); 
      else 
       _logger.Fatal("Unhandled exception: {0}", e.ExceptionObject); 

      if (_program != null) 
       _program.Exit(); 
     } 

밖에 다음

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

를 추가하고이 예외를 catch되는지 확인합니다. 물론 당신의 목적에 맞게 방법을 바꾸십시오.

+0

오랜 시간이 지난 후에이 질문으로 돌아오고 있습니다. 나는 결국이 문제를 해결했지만 편집과 관련된 약간의 문제 (세부 사항을 기억할 수 없음)가있었습니다. 내가 지적하고자하는 것은 UnhandledException 이벤트에 대한 핸들러를 사용했지만,이 경우에는 호출되지 않았습니다. 충돌이 너무 커서 핸들이 처리 할 수 ​​없었습니다. :) –

관련 문제