Autor Beitrag
Stefan.Buchholtz
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 612

WIN 2000, WIN XP, Mac OS X
D7 Enterprise, XCode, Eclipse, Ruby On Rails
BeitragVerfasst: Fr 03.02.06 18:11 
Wie debugge ich eine Dienstanwendung?
Ich bekomme meinen Dienst aus der Systemsteuerung gestartet und möchte den Debugger (mit Start->Mit Prozess verbinden) darauf ansetzen, aber in der Prozessliste taucht der Dienst überhaupt nicht auf. Im Taskmanager ist er zu sehen, er schreibt auch brav in sein Logfile - laufen tut er also. Es ist dabei egal, ob der Dienst unter LocalSystem oder meinem Account läuft.
Ich vermute ein Rechteproblem - ich bin als Hauptbenutzer angemeldet, Administratorrechte kriege ich auch nicht so ohne weiteres.
Als Alternative steht in der Delphi-Hilfe, dass man für den Dienst in der Registry unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options einen Schlüssel anlegen soll, in dem man Delphi als Debugger für den Dienst einträgt. Seitdem ich das gemacht habe, startet Delphi immer wenn ich den Dienst starte, liefert dann aber eine Fehlermeldung "Fehler beim Laden der Typbibliothek <Dienstanwendung.exe>". Der Start des Dienstes schlägt dann mit Fehler 1053 (Timeout) fehl.
Woran kann es liegen und wie kriege ich das hin?

Ich benutze hier Delphi 7 Enterprise unter Windows 200 Professions SP 4

Stefan

_________________
Ein Computer ohne Windows ist wie eine Schokoladentorte ohne Senf.
afk
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 102

Win 2K, Win XP
Delphi 2006 Arch., Delphi 6 Ent., MS-SQL 2005 & 2000
BeitragVerfasst: Fr 03.02.06 22:51 
Um Delphi mit einem unter dem Systemaccount laufenden Dienste-Prozess zu verbinden, muß im Fenster "Start->Mit Prozess verbinden" die Option "Systemprozesse anzeigen" aktivieren.

Colin Wilson hat eine Unit geschrieben, mit der man wahlweise einen Dienst auch direkt aus der IDE starten kann (läuft dann wie einen normaler Prozess), um in dann vom Anfang bis zum Ende debuggen zu können. Die befindet sich auf seine Website in den "NT Low Level Utilities".

Ein Artikel von ihm, der beschreibt wie man die Unit verwendet, ist im Google zu finden.

Gruß Axel

_________________
Man muß sparn wo mn knn !
Stefan.Buchholtz Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 612

WIN 2000, WIN XP, Mac OS X
D7 Enterprise, XCode, Eclipse, Ruby On Rails
BeitragVerfasst: Mo 06.02.06 10:20 
user profile iconafk hat folgendes geschrieben:
Um Delphi mit einem unter dem Systemaccount laufenden Dienste-Prozess zu verbinden, muß im Fenster "Start->Mit Prozess verbinden" die Option "Systemprozesse anzeigen" aktivieren.

Colin Wilson hat eine Unit geschrieben, mit der man wahlweise einen Dienst auch direkt aus der IDE starten kann (läuft dann wie einen normaler Prozess), um in dann vom Anfang bis zum Ende debuggen zu können. Die befindet sich auf seine Website in den "NT Low Level Utilities".

Ein Artikel von ihm, der beschreibt wie man die Unit verwendet, ist im Google zu finden.


Mit "Systemprozesse anzeigen" funktioniert es auch nicht, auf die Idee war ich schon selbst gekommen.

Ich schau mir die Unit mal an...

_________________
Ein Computer ohne Windows ist wie eine Schokoladentorte ohne Senf.
digi_c
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1905

W98, XP
D7 PE, Lazarus, WinAVR
BeitragVerfasst: Mo 06.02.06 14:23 
Das musste ich vor kurzem auch machen, war echt übel sich jedes mal an den Prozess zu hängen. Hinzu kam das dieser auch noch eine selbstgeschriebene DLL hatte...