Announcement

Collapse
No announcement yet.

Debug Dienste Delphi5

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Debug Dienste Delphi5

    Der entwickelte Dienst läuft ganz brav.
    Beim Prozeß verbinden aus der IDE kommen fehlende Zugriffsrechte.
    Wer kann die wohl notwendigen Registry Einträge als Beispiel liefern?

  • #2
    Hallo,

    ein NT-Dienst, der unter dem <b>Systemkonto</b> ausgeführt wird, unterliegt einigen von Microsoft im Platform SDK dokumentierten Einschränkungen. Darunter findet sich der Hinweis, dass in diesem Fall spezielle DACL angefordert werden müssen, wenn bestimmte Objekte von verschiedenen Prozessen geteilt werden sollen. Ich würde daher zum Debuggen den Dienst unter dem eigenen Adminstrator-Konto ausführen lassen

    Comment


    • #3
      Danke für den Tipp, Herr Kosch. Leider kein Erfolg. Die Liste der verfügbaren Prozesse bei Delphi/Projekt/Prozeß verbinden enthält dann diesen Prozess nicht.

      In der Hilfe "Services testen" sind Registry-Änderungen beschrieben, die wir wohl nicht verstehen.

      Weitere Hilfe sehr willkommen. Drängt

      Comment


      • #4
        Hallo,

        ich kann diesen Effekt nicht reproduzieren. Da mit dem <i>Borland Socket Server</i> (scktsrvr.exe) ein NT-Dienst mit Delphi ausgeliefert wird, eignet sich dieser gut für einen Test: <br>
        1. Aufruf von SCKTSRVR.EXE /INSTALL <br>
        2. Systemsteuerung | Dienste: <i>Anmelden als Systemkonto</i> und <i>Interaktive Beziehung mit dem Desktop erlauben</i> aktivieren <br>
        3. Dienst starten -> taucht in der Liste auf <br>
        4. Delphi: <i>Mit Prozess verbinden</i> - der Eintrag <i>scktsrvr.exe</i> kann in der Liste ausgewählt werden, der Button <i>Verbinden</i> ist nicht gesperrt

        Comment


        • #5
          Ich habe diesen Service ausprobiert. Der Knopf ist aktiv, dann aber das bekannte Problem: Zugriff wird verweigert.

          Ebenso verhält sich z.B. der Prozeß winlogon.
          Anderes geht : IE4, Explorer u.a.

          ??

          Comment


          • #6
            Hallo,

            das Debuggen eines laufenden NT-Services ist auch mit Microsoft Visual Studio (C++) etwas haarig, daher hat Microsoft in der <b>Platform SDK</b>-Hilfe gleich 2 Anleitungen zu veröffentlicht: <br>
            a) <i>Connecting the Debugger to a Running Service</i> <br>
            b) <i>Debugging a Service</i> <br>
            Die Delphi-Hilfeseite bezieht sich nur auf den Weg 2, d.h. der Dienst darf noch nicht laufen sondern wird erst beim Debuggen gestartet.

            Beim Weg a) ist zum Debuggen eines bereits laufenden Dienstes folgendes notwendig: <br>
            1. Install PVIEW.EXE from the Windows NT Resource Kit. <br>
            2. Start the service to be debugged. The service must be running before you can find its process identifier. <br>
            3. Start a command prompt or open an existing command prompt. Be sure that it is the only command prompt currently active. <br>
            4. Change directory to the installed location of PVIEW.EXE. <br>
            5. Type PVIEW. <br>
            6. In the drop-down list box near the top left of the PVIEW screen, find and select the process IDENTIFIER corresponding to CMD.EXE. <br>
            7. In the PVIEW dialog box, select Token. Click Process.<br>
            8. In Privileges, move <b>SetDebugPrivilege</b> from the Disabled box to the Enabled box. Click OK. <br>
            9. Connect Visual C++ to the running service. Note that when you use the process identifier from the Windows NT Server version of PVIEW.EXE, the process identifier is in decimal not hexadecimal. <br>
            10. Start Visual C++ with the command line: <i>START MSDEV /P nnn</i>
            where nnn is the process identifier in decimal or hexadecimal notation

            Comment

            Working...
            X