나는 윈도우 7의 서비스 관리자에서 메시지가 표시 될 때, 나는 서비스가 매여있다델파이 XE 서비스가 시작되지 않습니다 : 오류 1053
Error 1053: The service did not respond to the start or control reqquest in a timely fashion
을 얻을 시작되지 않습니다 델파이 XE에서 만든 서비스가 AfterInstall 및 OnExecute 이벤트와 함께 이벤트에 대한 코드는 다음과 같습니다.
procedure TAarhusRunner.ServiceAfterInstall(Sender: TService);
var
Reg: TRegistry;
begin
Reg := TRegistry.Create(KEY_READ or KEY_WRITE);
try
Reg.RootKey := HKEY_LOCAL_MACHINE;
if Reg.OpenKey('\SYSTEM\CurrentControlSet\Services\' + Name, false) then
begin
Reg.WriteString('Description', 'Worker Service for Inversion Job Distribution');
Reg.CloseKey;
end;
finally
Reg.Free;
end;
end;
procedure TAarhusRunner.ServiceExecute(Sender: TService);
begin
try
Self.Status := csRunning;
//start the loop
MainTimer.Interval := 5000; //MainTimer is declared in the .dfm
MainTimer.Enabled := True;
RecheckAndApplyTimer.Enabled := False;
while not Terminated do
begin
ServiceThread.ProcessRequests(true);
MainTimer.Enabled := False;
end;
except
on e: Exception do begin
MessageDlg(E.Message,mterror,[mbok],0);
exit;
end;
end;
end;
아무도 내가 뭘 잘못하고 있다고 말할 수 있습니까?
이런 종류의 디버깅 방법을 배우는 것이 좋습니다. 새롭고 비어있는 서비스 프로젝트로 시작하십시오. 이 작업이 시작 되나요? 아니면 1053 오류로도 실패합니다. 처음 시도해야하는 작업입니다. –
@TOndrej, 이거 확실한가요? 그런 다음 지연된 루프에서 수행중인 서비스를 어떻게 제안 하시겠습니까? (Thread.sleep을 말하지 말아주세요) –
'WaitForSingleObject' /'WaitForMultipleObjects'가있는 루프가 더 좋을 것입니다 ... – whosrdaddy