얼마 전에 Windows 서비스 작성 방법에 대한 MSDN 예제를 따랐습니다. 다음 코드가 포함되어 있습니다 :Win7 : 이벤트 소스에서 이벤트 로그 등록 취소
public Monitor_Processes()
{
InitializeComponent();
if (!System.Diagnostics.EventLog.SourceExists("Monitor_Processes"))
{
System.Diagnostics.EventLog.CreateEventSource("Monitor_Processes", "Monitor_Processes_Log");
}
eventLog1.Source = "Monitor_Processes";
eventLog1.Log = "Monitor_Processes_Log";
}
괜찮 았지만 서비스를 시작하는 중 오류가 발생했습니다. "이벤트 로그에"Monitor_Processes "소스가 'Monitor_Processes_Log'로그에 등록되지 않았습니다. (로그 '응용 프로그램'에 등록되었습니다.)"
이후 코드를 다음과 같이 변경했습니다 :
public Monitor_Processes()
{
InitializeComponent();
if (!System.Diagnostics.EventLog.SourceExists("Monitor_Processes"))
{
System.Diagnostics.EventLog.CreateEventSource("Monitor_Processes", "");
}
eventLog1.Source = "Monitor_Processes";
}
그러나
(오류 메시지가 계속 "Monitor_Processes_Log"를 참조한다) 서비스를 시작하려고 할 때 지금, 나는 여전히 같은 오류를 얻을 - 심지어 제거하고 다시 부팅 한 후입니다.어떻게 새로 시작하고 내 소스가 응용 프로그램 로그에 등록되어 있습니까? (서비스가 성공적으로 시작되었다고 가정 할 때)? 당신은 소스를 삭제해야
관리자 권한에 대한 훌륭한 조언. –
감사합니다. Phil. 이벤트 소스를 삭제하고 독립 실행 형 프로그램에서 새로 만들었습니다. 그러나 서비스를 다시 설치 한 후에도 시작하려고 할 때 동일한 오류가 발생합니다. 내 설치가 새 코드를 무시하는 것과 같습니다. Visual Studio에서 설치를하고 있습니다 (솔루션을 다시 빌드 한 후). –
수표도 제거했는지 확인하십시오. 쓰기 및 이벤트의 경우 정적 메서드를 사용하기 만하면됩니다. EventLog.WriteEntry ("Monitor_Processes", "Write some message"); 여전히 문제가 발생하면 try/catch에서 코드를 래핑 할 수 있습니다. catch 핸들러에서 Debug/Trace를 사용하여 명령문을 출력하십시오. 그런 다음 DebugView를 사용하여 현재 진행중인 작업을 확인할 수 있습니다. –