Guten Abend zusammen.
In meiner Firma entwickeln wir derzeit mehrere WCF Services. Jeder Service läuft - lokal - in einer WebDev.WebServer Instanz. Ich habe mir ein Tool geschrieben, welches alle laufenden WebDev.WebServer Instanzen beendet (ist echt nervig, 20 oder mehr Instanzen manuell beenden zu müssen). Das funktioniert auch problemlos (Process Klasse).
Ein Kollege hat mich auf eine Verbesserung hingewiesen: Alle laufenden Instanzen in einer Liste anzeigen und dem Benutzer die Wahl lassen, welche Instanzen beendet werden sollen. Allerdings scheine ich mit .NET Bordmitteln nur den Namen des Prozesses (eben "WebDev.WebServer40.exe" ermitteln zu können. Anscheinend komme ich an die Detailinformationen (z.B. welcher Service in der Instanz läuft) nicht heran.
Hat da jemand zufällig eine Idee?
Vielen Dank schon einmal im Voraus.
Edward
Ich hab das zwar noch nie gemacht, aber eventuell kommst du über die ServiceController-Klasse da dran.
Darth Maim
Hallo Darth Maim,
die ServiceController Klasse bietet leider nur Zugriffe auf Windows-Dienste, nicht aber auf WCF Services.
Gruß,
Edward
Hallo Edward,
mittels WMI sollte es möglich sein. Grob so:
var category = new PerformanceCounterCategory("ServiceModelService 4.0.0.0", "Maschinenname");
var instanceNames = category.GetInstanceNames();
foreach (var instanceName in instanceNames)
{
// in Liste darstellen
}
Hilfreich bei WMI ist der WMI Code Creator
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"