我在德尔福XE做了一个服务,将无法启动在Windows 7中,从服务管理器提示时,我得到德尔福XE服务将无法启动:错误1053
Error 1053: The service did not respond to the start or control reqquest in a timely fashion
我已经服务挂钩与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.这是你应该尝试做的第一件事。 – 2014-09-30 08:44:19
@TOndrej,你确定?那么你会如何提出一个在延迟中循环执行的服务呢? (请不要说了Thread.Sleep) – 2014-09-30 10:41:38
使用循环'WaitForSingleObject' /'WaitForMultipleObjects'会更好...... – whosrdaddy 2014-09-30 10:45:03