Veröffentlicht 29. September 200618 j Hallo, Ich habe einen Dienst erstellt welcher mir Dateien erzeugt. Zu einem bestimmten Zeitpunkt wird ein Thread gestartet in dem ich ein externes Programm starten will ( sqlplus ). Das ganze mache ich mit System.Diagnostics.ProcessStartInfo sInfo = new System.Diagnostics.ProcessStartInfo(); sInfo.FileName = "sqlplus.exe"; sInfo.Arguments = "userid/password@db @" + strTmp; System.Diagnostics.Process prz = System.Diagnostics.Process.Start(sInfo); try { prz.WaitForExit(); } catch (System.ComponentModel.Win32Exception ex) { } catch (SystemException ex) { } Das ganze startet auch aber es tut sich absolut nichts. D.h. der Prozess wird nie beendet bzw. tut einfach nichts. Die Ausführung bleibt bei WaitForExit hängen ( soll ja auch so sein ). Wenn ich das gleiche nicht aus einem Dienst starte funktioniert alles! Ist es irgendwie möglich eine Konsolenanwendung aus einem Dienst heraus zu starten die dann auch abläuft?
29. September 200618 j Naja der Dienst hat ja erstmal keinen Desktop zur Verfügung um die Konsole darzustellen. Wenn du dir in der Windowsverwaltung die Optionen zu einem beliebigem Dienst anschaust dann siehst du auf dem Reiter Anmelden bei Lokalem Systemkonto die Option "Datenaustausch zwischen Dienst und Desktop zulassen". Diese musst du entwqeder manuell oder mit dem Programm das den Dienst anlegt setzten. Dann sollte es gehen.
29. September 200618 j eher schlecht, da der Dienst unter einem Benutzer ausgeführt wird. Wenn ich ihn mit LocalSystem laufen lassen will startet er gar nicht. Und ja, der Benutzer hat Admin Rechte
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.