AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Service startet nicht

Ein Thema von himitsu · begonnen am 16. Jun 2011 · letzter Beitrag vom 20. Jun 2012
Antwort Antwort
Cici

Registriert seit: 19. Apr 2005
12 Beiträge
 
#1

AW: Service startet nicht

  Alt 14. Jun 2012, 14:34
Hallo,
ich habe das gleiche Problem wie der Themenstarter <E1053:>
habe aber keine Lösung.

Versuche auch einen Service mit Delphi XE2 zu erstellen.
Im meiner Verzweifelung habe ich mich an Beispielen gehalten die bei anderen Usern bereits liefen.

Den Service installiere ich mit:
sc create "TEST" start= auto binpath= "c:\x\Servicetest.exe"
sc description "TEST" "TEST Dienst"

Starten mit:
sc start "TEST"

Der Prozess erscheint in der Win-Prozessliste und das wars dann.

Das Starten mit dem Dienstmanger ergibt Error:1053.

Es wird nicht einmal die Logdatei angelegt.
Also "oncreate" wird nicht ausgeführt.

Hier der Code:
Code:
unit ServMain;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.SvcMgr, Vcl.Dialogs,
  Vcl.ExtCtrls;

type
  TService4 = class(TService)
    procedure ServiceStart(Sender: TService; var Started: Boolean);
    procedure ServiceStop(Sender: TService; var Stopped: Boolean);
    procedure ServiceCreate(Sender: TObject);
    procedure ServiceExecute(Sender: TService);
    procedure ServiceDestroy(Sender: TObject);
    procedure ServiceBeforeInstall(Sender: TService);
    procedure ServiceAfterUninstall(Sender: TService);
  private
    { Private-Deklarationen }
    LogFile: TStringList;
  public
    function GetServiceController: TServiceController; override;
    { Public-Deklarationen }
  end;
const LogFileName = 'Service_log.txt';
var
  Service4: TService4;

implementation

{%CLASSGROUP 'System.Classes.TPersistent'}

{$R *.DFM}

procedure ServiceController(CtrlCode: DWord); stdcall;
begin
  Service4.Controller(CtrlCode);
end;

function TService4.GetServiceController: TServiceController;
begin
  Result := ServiceController;
end;

procedure TService4.ServiceAfterUninstall(Sender: TService);
begin
   LogFile.Add(DateTimeToStr(Now)+' OnAfterInstall');
  LogFile.SaveToFile(LogFileName);
end;

procedure TService4.ServiceBeforeInstall(Sender: TService);
begin
  LogFile.Add(DateTimeToStr(Now)+' OnBeforeInstall');
  LogFile.SaveToFile(LogFileName);
end;

procedure TService4.ServiceCreate(Sender: TObject);
begin
  LogFile:=TStringList.Create;
  LogFile.Add(DateTimeToStr(Now)+' OnCreate');
  LogFile.SaveToFile(LogFileName);
end;

procedure TService4.ServiceDestroy(Sender: TObject);
begin
  LogFile.Free;
end;

procedure TService4.ServiceExecute(Sender: TService);
begin
  while not Terminated do
  begin
    LogFile.Add(DateTimeToStr(Now)+' OnExecute');
    LogFile.SaveToFile(LogFileName);
    ServiceThread.ProcessRequests(False);
    Sleep(1000);
  end;
end;

procedure TService4.ServiceStart(Sender: TService; var Started: Boolean);
begin
  LogFile.Add(DateTimeToStr(Now)+' Service gestartet');
  LogFile.SaveToFile(LogFileName);
end;

procedure TService4.ServiceStop(Sender: TService; var Stopped: Boolean);
begin
  LogFile.Add(DateTimeToStr(Now)+' Service gestoppt');
  LogFile.SaveToFile(LogFileName);
end;

end.
...und...
Code:
program Servicetest;

uses
  Vcl.SvcMgr,
  ServMain in 'ServMain.pas' {Service4: TService};

{$R *.RES}

begin
  // Für Windows 2003 Server muss StartServiceCtrlDispatcher vor
  // CoRegisterClassObject aufgerufen werden, das indirekt von
  // Application.Initialize aufgerufen werden kann. TServiceApplication.DelayInitialize
  // ermöglicht, dass Application.Initialize von TService.Main (nach
  // StartServiceCtrlDispatcher) aufgerufen werden kann.
  //
  // Eine verzögerte Initialisierung des Application-Objekts kann sich auf
  // Ereignisse auswirken, die dann vor der Initialisierung ausgelöst werden,
  // wie z.B. TService.OnCreate. Dies wird nur empfohlen, wenn ServiceApplication
  // ein Klassenobjekt bei OLE registriert und für die Verwendung mit
  // Windows 2003 Server vorgesehen ist.
  //
  // Application.DelayInitialize := True;
  //
  if not Application.DelayInitialize or Application.Installing then
    Application.Initialize;
  Application.CreateForm(TService4, Service4);
  Application.Run;
end.

Bin ich blind?
hexAsmPAsDPR???
  Mit Zitat antworten Zitat
angos

Registriert seit: 26. Mai 2004
Ort: Rheine
553 Beiträge
 
Delphi 12 Athens
 
#2

AW: Service startet nicht

  Alt 14. Jun 2012, 14:58
Hi,

hast du die anderen Beiträge hier schon gelesen? Das riecht ein bisschen nach fehlenden Rechten, die Datei anlegen zu dürfen.

Gruß
Ansgar
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#3

AW: Service startet nicht

  Alt 14. Jun 2012, 15:05
Wo soll den "LogFileName" entstehen, ich habe nur den Dateinamen gefunden.
Wenn Du im Constructor ein Sleep(10000) einbaust hast Du genügend Zeit Dich in Delphi über Start/Mit Prozess verbinden mit dem Debugger darufzustürzen.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Cici

Registriert seit: 19. Apr 2005
12 Beiträge
 
#4

AW: Service startet nicht

  Alt 14. Jun 2012, 15:45
Erstmal Danke für Eure Antworten.

Das mit dem Logfile habe ich gemacht, da Showmessage nur interativ funktioniert.
Wenn ich das mit Logfile weglasse, geht es auch nicht.
Bis oncreate komme ich erst gar nicht.
Am Anfang habe ich es nur mit "Beep" versucht.

Mit dem Debugger habe ich es auch versucht, sehe aber im "Prozess verbinden Dialog" meinen Prozess nicht.
(Auch nicht mit dem häckchen "Systemprozesse anzeigen").
Anscheinend werden alle Systemprozesse hier nicht angezeigt (z.B. Sidebar &Co auch nicht)
(Delphi XE2 Prof Upd.4)
hexAsmPAsDPR???
  Mit Zitat antworten Zitat
Cici

Registriert seit: 19. Apr 2005
12 Beiträge
 
#5

AW: Service startet nicht

  Alt 14. Jun 2012, 15:48
ach ja
wenn ich es mit dem Parameter Bla.exe /INSTALL versuche bekomme ich nach 30 sek. EOSError Code 5
hexAsmPAsDPR???
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#6

AW: Service startet nicht

  Alt 14. Jun 2012, 15:50
Du musst Delphi hierfür "Als Administrator" ausführen (Win Vista / 7 rechter Mausklick)
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Cici

Registriert seit: 19. Apr 2005
12 Beiträge
 
#7

AW: Service startet nicht

  Alt 14. Jun 2012, 16:00
Du musst Delphi hierfür "Als Administrator" ausführen (Win Vista / 7 rechter Mausklick)
Guter TIP - wäre ich nicht drauf gekommen, da ich als Admin angemeldet bin.
hexAsmPAsDPR???
  Mit Zitat antworten Zitat
Cici

Registriert seit: 19. Apr 2005
12 Beiträge
 
#8

AW: Service startet nicht

  Alt 14. Jun 2012, 16:08
Du musst Delphi hierfür "Als Administrator" ausführen (Win Vista / 7 rechter Mausklick)
Debug geht, bringt mich aber nicht weiter.
Lande im CPU Fenster bei "NTKernel.dll".
Nach einigen "F7" wird das "Programm" ausgeführt - das wars - nix weiter.
Ich komme nicht an "meinen Code" ran.
Das Problem muss wohl irgenwo "weiter vorne" liegen.

Der Prozess muss manuell gekillt werden.
hexAsmPAsDPR???
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#9

AW: Service startet nicht

  Alt 14. Jun 2012, 16:19
kommentier mal versuchsweise den Code in ServiceExecute aus ...
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz