Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Service startet nicht (https://www.delphipraxis.net/161093-service-startet-nicht.html)

p80286 17. Jun 2011 16:10

AW: Service startet nicht
 
*Schulterzucken*
So isses halt

Gruß
K-H

QuickAndDirty 19. Jun 2011 01:04

AW: Service startet nicht
 
Das hatte ich auch mal bei einem Kunden....
Der Admin hat natürlich jede Verantwortung von sich gewiesen...Außerdem ist ja nicht SEIN Server Schuld wenn UNSER Dienst nicht unter dem Namen arbeitet.....

Wer hat die Bugsuche bei euch bezahlt?


UND
*frust ablassen und morgen löschen...oder gebannt werden*

Am Freitag habe ich ein Problem Gelöst...Dienst hängt sich auf und lässt sich nicht mehr beenden....danach habe ich 2 Wochen gesucht...
Kunde setzte eine treiber DLL ein ...die tunnelt einen echten Treiber von außen in das System per IP....und....sie wirft "::MessageBox" wenn die IP-Verbindung scheiße ist.....

"::MessageBox" in einer DLL die von einem Dienst benutzt wird........

Der Admin meinte zu mir nur..."Die macht keine MessageBox, die müsste ich doch sonnst sehen" *facepalm*
...obwohl das dingen 32K zeichen openssource text ist, jeder das sehen kann das die DLL das macht und ich es nachvollziehen konnte...weil ich die auch einsetze...

Wer bezahlt das ich das Programm unnötigerweise 2 Wochen lang mit kleinstschrittigen Logausgaben voll gepackt hab? genau niemand. Wer ist dafür verantwortlich das der Dienst nicht lief??? Wir natürlich und nicht der Typ der auf die glorreiche Idee gekommen ist eine Opensource Notlösung als Treiber DLL zu installieren die MessageBoxen schmeißt wenn das Netzwerk nicht schnell genug reagiert. Und wieso ist kein Admins jemals selbst auf die Idee gekommen irgendetwas von dem was er tut oder wofür er verantwortlich ist, in zweifel zu ziehen und zu überprüfen?
Ganz einfach, weil sie es nicht müssen !!!

himitsu 19. Jun 2011 04:21

AW: Service startet nicht
 
och, war ja "nur" unserer eugener nagelneuer Server.

kleinschritig ist gut ... alleine beim Start entstehen gleich mal 70 KB an Logs :lol:

PS: geil ist ja, daß EurekaLog das Application.OnException kapput macht und man selber auch noch gerne darauf reagieren möchte.

Cici 14. Jun 2012 14:34

AW: Service startet nicht
 
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?

angos 14. Jun 2012 14:58

AW: Service startet nicht
 
Hi,

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

Gruß

Bummi 14. Jun 2012 15:05

AW: Service startet nicht
 
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.

Cici 14. Jun 2012 15:45

AW: Service startet nicht
 
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)

Cici 14. Jun 2012 15:48

AW: Service startet nicht
 
ach ja
wenn ich es mit dem Parameter Bla.exe /INSTALL versuche bekomme ich nach 30 sek. EOSError Code 5

Bummi 14. Jun 2012 15:50

AW: Service startet nicht
 
Du musst Delphi hierfür "Als Administrator" ausführen (Win Vista / 7 rechter Mausklick)

Cici 14. Jun 2012 16:00

AW: Service startet nicht
 
Zitat:

Zitat von Bummi (Beitrag 1170909)
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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:12 Uhr.
Seite 3 von 4     123 4      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz