2012-08-13 3 views
4

자체를 다시 시작해야하는 서비스 응용 프로그램을 개발 중입니다. 그 일을하는 방법은 무엇입니까? 시스템 시작 응용 프로그램이 중지되면 다시 요청할 수 있습니까?예외가 발생할 경우 재시작 서비스

답변

7

서비스는 AfterInstall 이벤트 내에서 Win32 API ChangeServiceConfig2() 함수를 호출하여 프로그래밍 방식으로 복구 옵션을 구성 할 수 있습니다. dwInfoLevelSERVICE_CONFIG_FAILURE_ACTIONS으로 설정하고 lpInfoSERVICE_FAILURE_ACTIONS 레코드로 지정하여 서비스 실패시 수행 할 작업을 지정합니다.

6

services.msc으로 이동하면이 서비스를 구성 할 수 있습니다. 코드에서 그렇게 할 필요는 없습니다. 서비스 속성을 열 때 복구 탭을 참조하십시오.

+0

+1, 흥미 롭습니다. 이 복구를 프로그래밍 방식으로 구성하는 방법이 있습니까 (어딘가에 내가 생각하는 레지스트리에서)? – TLama

+2

아마도'HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services'로 갈 수 있습니다. 아마도 더 나은 대안은'InstallerClass'를 서비스에 추가하고 거기에서 코드로 구성하는 것입니다. –

+0

Delphi 서비스 모듈에는 적어도 이후 버전에서도이를 구성 할 수있는 옵션이 있습니다. – mj2008

관련 문제