Debugging von NT -Serviceprogrammen
------------ Auszug aus dem Buch Delphi 6 Anwendungsentwicklungshandbuch
Es gibt zwei Möglichkeiten, ein Serviceprogramm zu debuggen. Die erste besteht darin, den arbeitenden Teil des Dienstes in einer separaten Klasse zu definieren und ihn in einem separaten Programm zu debuggen. Der zweite Typ ist das Debuggen, wenn der Dienst ausgeführt wird. Der erste Ansatz ist eine gute Idee.
Wir verwenden die erste Methode zum Erstellen von zwei Programmen: ServiceApp und Testmailer (auch auf der CD dieses Buches verfügbar). Fügen Sie einem separaten Programm die gleichen Komponenten TidMessage, Timer und Tidstmp hinzu und erstellen Sie einen E -Mail -Absender. Wenn der Mangel des TestMailer -Programms gefunden wird, werden alle Änderungen am Serviceprogramm aktualisiert. Das Erstellen einer Workbench oder das Testen eines Programms ist einfach, aber nicht immer genug.
Die zweite Möglichkeit, ein Serviceprogramm zu testen, besteht darin, das Serviceprogramm zu installieren und auszuführen und anschließend an den Auslaufprozess in Delphi hinzuzufügen. Befolgen Sie diese Schritte, um das Programm serviceApp.exe zu debuggen, während der Dienst ausgeführt wird.
1. Führen Sie serviceApp.exe /installieren Sie in der Befehlszeile aus, um das Serviceprogramm zu installieren.
2. Start | Einstellungen | Suchen Sie MyService und klicken Sie auf die Schaltfläche "Servicebarifter starten" (die Schritte sind für Windows 2000 anwendbar; die Schritte in Windows NT4.0 sind nahezu gleich).
3. Führen Sie Delphi aus.
4. Laden Sie das serviceApp.dpr -Projekt.
5. Wählen Sie den Menüelement für den Ausführen in Delphi aus.
6. Wählen Sie im Dialogfeld "Anhänge zum Prozess" (wie in der folgenden Abbildung gezeigt) das Kontrollkästchen des Systemprozesses aus.
7. Suchen Sie serviceApp.exe und klicken Sie auf die Schaltfläche Anhänge.
8. Stellen Sie in Delphi einen Haltepunkt auf der Onexcute -Ereignismethode der Projektquelldatei ein und drücken Sie F9.
Abbildung B.3 zum Prozessdialogfeld mit dem Prozess kann verwendet werden, um einen Delphi -Debugger an einen laufenden Prozess anzuhängen.
Delphi wird den Debugger dem laufenden Serviceprogramm anhängen und den CPU -Dialog eröffnen. Wenn Sie nicht reibungslos reibungslos lesen, sind die CPU -Ansichten nicht sehr nützlich. Wenn das Serviceprogramm jedoch zu einem Haltepunkt läuft, wird der Haltepunkt gestoppt und wechselt zur Delphi -Codeansicht. Nachdem der Benutzer die Kontrolle über den laufenden Dienst über Delphi erhalten hat, kann der Dienst wie andere Programme gestrichen und debuggen werden.
Hinweis: Als Entwickler sollten Sie Administratorrechte auf Ihrem PC haben. Unglaublicherweise vertrauen einige Organisationen Entwicklern, dass sie Code schreiben, aber sie erlauben ihnen nicht, ihre eigenen PCs zu verwalten. Die derzeitige wirtschaftliche Situation ist immer noch gut, finden Sie also einen neuen Job.
In der Delphi -Hilfsdokumentation wird erwähnt, dass die Anhaftung des Serviceprozesses, wenn die Berechtigungen unzureichend sind, möglicherweise fehlschlagen. Wenn Sie Administratorrechte auf Ihrem PC haben, funktioniert der beigefügte Serviceprozess immer einwandfrei. Das Hilfesthema "Debugging Services" enthält eine dritte Möglichkeit für Debugg -Dienste, bei der die Einstellungen für die Registrierung geändert werden, auf die Sie sich beziehen können.
Ye Zhengsheng
2005-05-22