2010-12-03 5 views
13

Main() 메서드가 서비스 제어 관리자와 관련되어 Windows 서비스에서 정확히 작동하는지 궁금합니다. 실행은 언제입니까? OS에 어떻게 연결 되나요? 서비스가 설치 될 때 실행됩니까? OnStart()가 SCM에 의해 호출 될 때 실행된다는 것을 안다. OnStop()은 이미 실행 중이므로 다시 실행하지 않을 것이다.C# Windows 서비스 기본 방법

누구든지이 영역에 대해 많이 알고 있고 정교하게 생각하면 감사하게 생각합니다.

필자는 expeirenced 프로그래머입니다. Main Method가 일반적으로하는 일에 대한 설명이 필요하지 않습니다 ... Windows 서비스와 함께 작동하는 방법에 대해서 설명 할 필요가 없습니다.

+0

주 방법은 컴파일러에 대해서만 "main"이라는 것을 알아야합니다. 따라서 이것은 Windows 서비스를 시작하는 것과 관련이 없습니다. –

답변

13

제어판 애플릿을 사용하여 시작할 서비스를 시작하면 SCM이 프로세스를 시작합니다. 이로 인해 Main() 내부의 코드가 실행됩니다. Main() 메서드의 ServiceBase.Run() 줄은 연관된 서비스를 SCM에 후크합니다. 그러면 SCM은 ServiceBase.Run() 메서드 호출에 지정된 각 서비스에 대해 OnStart() 메서드를 호출합니다.

+1

Main()이 예외를 throw하면 어떻게됩니까? 제어판 애플릿이 사용자에게 문제가 있음을 알리는가? – PaulK