StopService - File In Use

12/07/2010 - 20:03 von Hans Peter | Report spam
Hallo zusammen,

ich benutze den ServiceController um einen Dienst zu stoppen und warte
mit WaitForStatus auf den Status "Gestoppt". Direkt danach möchte ich
die Dienst-Datei überkopieren. Das funktioniert allerdings nur meistens,
denn obwohl der Dienst gestoppt ist (Ich habe nachdem der
Status="Gestoppt" ist nochmal den Status nochmal angefragt und dieser
war ebenfalls "Gestoppt") erhalte ich die Meldung "File In Use".

Ich kann es auf mehreren Rechner reproduzieren wenn ich z.B. 50 mal in
einer Schleife den Dienst stoppe, die Dienst-Datei überkopiere und den
Dienst danach wieder starte. Irgendwann (manchmal beim ersten Mal und
manchmal auch gar nicht) erhalte ich die Meldung "File In Use".

Hat jemand hier einen Tipp für mich, warum die Datei gesperrt ist,
obwohl der Dienst gestoppt ist?

Gruß Hans
 

Lesen sie die antworten

#1 Thomas Scheidegger
12/07/2010 - 20:10 | Warnen spam
Hallo Hans

ich benutze den ServiceController um einen Dienst zu stoppen und warte mit
WaitForStatus auf den Status "Gestoppt". Direkt danach möchte ich die
Dienst-Datei überkopieren.



also die EXE überschreiben?

obwohl der Dienst gestoppt ist



dies bedeutet noch nicht, dass der 'Hosting'-Prozess des Service
auch schon beendet ist!
(ein Service ist sowas wie 'eine Art Thread' in einem Prozess)

Also entweder wartest du auf das Ende des Prozesses,
oder evtl. kannst du die alte EXE zuerst umbenennen
und dafür neue kopieren.




Thomas Scheidegger - 'NETMaster'
http://dnetmaster.net/

Ähnliche fragen