Probleme bei Process.Start()

14/08/2009 - 09:12 von Frank | Report spam
Hallo

hat jemand eine Idee, warum meine zu öffnende Anwendung nicht geöffnet wird?

Hier paar Daten:
Ich hab eine .NET Anwendung implementiert (WCF Service) die im Hintergrund
überprüft, ob ein Java Socket am laufen ist, der die Schnittstelle zu einer
weiteren entfernt liegenden Java Anwendung darstellt. Wenn der Socket
allerdings aus irgendwelchen Gründen nicht mehr làuft, will ich ihn von der
.NET Anwendung aus mit Process.Start("Pfad\Foo.exe"); starten.
Alles was ich an Exception erhalte ist:

- "foo.BasePriority" hat eine Ausnahme vom Typ
"System.InvalidOperationException" verursacht.

- base {System.SystemException} = {"Die angeforderten Informationen sind
nicht verfügbar, da der Prozess beendet wurde."}

- StackTrace:
bei System.Diagnostics.Process.EnsureState(State state)
bei System.Diagnostics.Process.get_ProcessName()

Gleiches kommt auch, wenn ich versuche die foo.exe über
Process.Start("Pfadun.bat"); in der cmd zu öffnen oder wenn ich wie in
dutzenden Webbeispielen einfach mal versuche die notepad.exe zu starten.

Hier mal der Code:
-
Process[] socketProcess = Process.GetProcessesByName("ServerSocket");
if(socketProcess.Count() != 0) { return true; }
string appPath = GetAppPath();
string serverSocketPath = Path.Combine(appPath, "java_socket");
string serverSocketFileName = Path.Combine(serverSocketPath, "run.bat");

if(File.Exists(serverSocketFileName)) {
try {
ProcessStartInfo processInfo = new
ProcessStartInfo(serverSocketFileName);
processInfo.CreateNoWindow = true;
processInfo.UseShellExecute = false;
Process socketServer = Process.Start(processInfo);
socketProcess = Process.GetProcessesByName("ServerSocket");
int i = socketProcess.Count();
return true;
}
catch(Exception ex) {
return false;
}
}
return false;

Beste Grüße
Frank Huster
 

Lesen sie die antworten

#1 Frank Dzaebel
16/08/2009 - 20:15 | Warnen spam
Hallo Frank Huster,

hat jemand eine Idee, warum meine zu öffnende
Anwendung nicht geöffnet wird?

Hier paar Daten:
- base {System.SystemException} = {"Die angeforderten Informationen
sind nicht verfügbar, da der Prozess beendet wurde."}



ja, meistens ist dann aber genau das auch der Grund,
nàmlich das schlicht der Prozess beendet wurde.
Kannst Du ja ggf. prüfen.



Gleiches kommt auch, wenn ich versuche die foo.exe über
Process.Start("Pfadun.bat");



wir wissen nicht, was "run.bat" tut, wie es implmentiert
ist, aber Batches terminieren natürlich ggf. irgendwann,
wenn nicht mit "cmd /k" aufgerufen, oder ReadLine
o.à. gemacht wird. Auch ist das Terminierungsverhalten
für Batches benutzerdefiniert einstellbar.


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen