2009-07-30 2 views
8

서비스를 시작할 수 없습니다. 서비스가 오류를보고하지 않았습니다.어떻게이 오류를 디버깅 할 수 있습니까? <서비스 이름> 서비스를 시작할 수 없습니다. 서비스가 오류를보고하지 못했습니다.

Windows 서비스 프로젝트를 명령 줄에 설치할 때마다이 오류가 발생합니다. 내 코드에 오류가 있지만이 오류 메시지로 어떻게 오류를 찾을 수 있습니까? 주위 코드 의심() 메소드는,

try{...} 
catch(Exception ex) 
{ 
    //write to file ex.ToString(); 
} 

을 추가하고

답변

8

) 그리고 그것을 기록하십시오 (나는 Trace 나 Debug를 사용합니다 - DebugView로 그 메시지를 볼 수 있습니다). 오류가 있음을 서비스 관리자에게 아이디어를 제공하기 위해

당신이 할 수있는 (단지 사용자를 돕기 위해) :

service.ExitCode = 1064; //ERROR_EXCEPTION_IN_SERVICE - just example 

"서비스"를 서비스의 목적입니다.

+2

Windows 이벤트 로그 사용 ... EventLog.WriteEntry (String.Format ("예외 메시지 : {0} \ nTrace : {1}", ex.Message, ex.StackTrace), EventLogEntryType.Error) ; –

2

가 UnhandledException 잡기 오류 처리 블록 (추가하거나 시도 파일에 예외를 로그 서비스의 ONSTART에서 예외/catch 블록이 있습니다

+0

이 ExitCode는'net start' 출력이나 Services MMC 창에서 시작할 때 출력됩니다. – StuartN

0

Visual Studio가 설치되어 있고 .NET을 사용하는 경우 OnStart() 함수에서 System.Diagnostics.Debugger.Break()를 호출하십시오. 서비스가 시작되면 서비스를 디버깅하라는 메시지가 표시됩니다. Visual Studio 옵션을 선택하면 프로그래밍 방식 중단 점이있는 디버거가 나옵니다. 거기에서 정상적으로 디버깅 할 수 있습니다.

관련 문제