Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

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

  Alt 14. Feb 2005, 19:18
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;
Andreas
  Mit Zitat antworten Zitat