Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Als Anwendung läufts, als Dienst wird es nicht ausgeführt (https://www.delphipraxis.net/40273-als-anwendung-laeufts-als-dienst-wird-es-nicht-ausgefuehrt.html)

emsländer 13. Feb 2005 14:46


Als Anwendung läufts, als Dienst wird es nicht ausgeführt
 
Moin,

innerhalb einer Anwendung/eines Dienstes habe ich folgenden Code:

Delphi-Quellcode:

   zipdecodiert := base64decode(zipcodiert);
   zipcodiert := '';
   ls := length(zipdecodiert);
   fs := tfilestream.create('c:\fddservice\tmp.zip', fmcreate);
   fs.Write(zipdecodiert[1],ls);
   fs.free;
   logdatei('Base64decodiert '+inttostr(ls)+' Zeichen in tmp.zip geschrieben');
   zipdecodiert := '';
   sleep(1000);
   logdatei('Sleep 1 überstanden');
   myzip := tzipfile.create;
   myzip.LoadFromFile('c:\fddservice\tmp.zip');
   sleep(1000);
   logdatei('Sleep 2 überstanden');
   .....
   ....
Das "sleep" hatte ich nur reingebaut, um evtl. Timingprobleme zu vermeiden.
Er kommt bis zum logdatei('Sleep 1 überstanden'); - das wird noch ausgeführt (lt. LOG).
ab da ist dann Schluss

Als Anwendung läuft das ganze. In dem Dienst jedoch nicht. Die Datei 'tmp.zip' ist auch anschliessend vorhanden und die Rechte passen auch.

Hat jemand eine Idee?


Gruss

EL

shmia 14. Feb 2005 18:18

Re: Als Anwendung läufts, als Dienst wird es nicht ausgeführ
 
Zitat:

Zitat von emsländer
Delphi-Quellcode:
   zipdecodiert := base64decode(zipcodiert);
   zipcodiert := '';
   ls := length(zipdecodiert);
   fs := tfilestream.create('c:\fddservice\tmp.zip', fmcreate);
   fs.Write(zipdecodiert[1],ls);
   fs.free;
   logdatei('Base64decodiert '+inttostr(ls)+' Zeichen in tmp.zip geschrieben');
   zipdecodiert := '';
   sleep(1000);
   logdatei('Sleep 1 überstanden');
   myzip := tzipfile.create;
   myzip.LoadFromFile('c:\fddservice\tmp.zip');
   sleep(1000);
   logdatei('Sleep 2 überstanden');
   .....
   ....
Das "sleep" hatte ich nur reingebaut, um evtl. Timingprobleme zu vermeiden.
Er kommt bis zum logdatei('Sleep 1 überstanden'); - das wird noch ausgeführt (lt. LOG).
ab da ist dann Schluss

Als Anwendung läuft das ganze. In dem Dienst jedoch nicht. Die Datei 'tmp.zip' ist auch anschliessend vorhanden und die Rechte passen auch.

Exceptions müssen in einer Serviceanwendung abgefangen und geloggt werden, da sie i.d.R. nicht an die
Benutzer-Oberfläche treten.
Delphi-Quellcode:
   logdatei('Sleep 1 überstanden');
   myzip := tzipfile.create;
   try
      myzip.LoadFromFile('c:\fddservice\tmp.zip');
      sleep(1000);
      logdatei('Sleep 2 überstanden');
   except
      on E:Exception do
      begin
         logdatei(E.Message);
         Exit; // nach einer Exception kann man hier gleich aufhören
      end;
   end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:30 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