Laden...

Programm beenden über das Nertzwerk

Erstellt von Tossi65 vor 2 Jahren Letzter Beitrag vor 2 Jahren 480 Views
T
Tossi65 Themenstarter:in
83 Beiträge seit 2010
vor 2 Jahren
Programm beenden über das Nertzwerk

Guten Morgen Kollegen,
ich erstelle und arbeite mit einer Software, die zentral auf einem Server installiert ist und die Clients haben dorthin ein Link zur Exe. Sie starten also die Exe aus dem Link heraus.
Alles schick. Während des Starts tragen sich die Clients in einer Tabelle der Datenbank ein. Da wir global agieren und ich die Software warten muss, kommt es vor, das vor Ort niemand
zu erreichen , aber die Software auf irgendeinem Client gestartet ist. Folge: Ich kann die Dateien nicht tauschen. Wenn dieser Client RDP nicht zulässt, habe ich die A..karte.

Meine Frage: Die Clients stehen in einer Tabelle drin. Gibt es eine Möglichkeit per .Net die Programme über das Netzwerk zu beenden?
Die Datenbank ist eine MS SQL Datenbank.

Mfg Torsten

Danke Tossi

3.825 Beiträge seit 2006
vor 2 Jahren

Hallo Torsten,

jetzt gibt es gleich Schimpfe dass die Exe auf einem Netzwerklaufwerk liegt 😉

Ich mache das aber genauso und läuft seit vielen Jahren in vielen Firmen gut. Ab Windows 7 wird eine geöffnete Datei von Windows gesperrt, vorher konnte man sie einfach austauschen.

Das Problem habe ich auch dass Leute über VPN oder so das Programm gestartet haben und man es so nicht mit einer neuen Version überschreiben kann.

Ich mache das so : ich kopiere das Programm mehrmals auf das Netzwerklaufwerk und mein Hauptprogramm startet immer das Neueste. So kann ich alle nicht gesperrten ersetzen und mit dem Neustart steht die aktuelle Programmversion zur Verfügung.

Programm beenden könnte man nur wenn parallel ein anderen Programm läuft was es beendet. Was ist aber wenn gerade jemand am Arbeiten ist ?

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

P
441 Beiträge seit 2014
vor 2 Jahren

Da gibts sogar schon einen FAQ Artikel von...
[FAQ] Anwendung von Netzlaufwerk starten

Das Szenario schreit nach einer besseren Strategie zur Softwareverteilung.

Edit: Ups, erst den Thread lesesn, dann posten.
Dann wäre es wohl Zeit für einen solchen Artikel.
Der Punkt mit dem Netzlaufwerk ist - neben den Problemen, die du selber siehst - dass Netzlaufwerke prinzipiell als nicht vertrauenswürdig und das zurecht.

T
Tossi65 Themenstarter:in
83 Beiträge seit 2010
vor 2 Jahren

Ich weiß, das ist nicht die feine Art. Mit einer FireBird Datenbank und einem Eventalerter hatte ich das Problem über die Datenbank gelöst.
Aber MS SQL ist hier ein wenig steif.

Mal weiterforschen. Die Kollegen verstehen einfach nicht, die Anwendungen nach Feierabend zu beenden.

Danke Tossi

2.298 Beiträge seit 2010
vor 2 Jahren

Mal davon ab, dass ich es für eine schlechte Idee halte Anwendungen automatisch zu beenden, an denen gerade jemand arbeitet eventuell folgender Ansatz:

  • In der Datenbank in einer meinetwegen "Config"-Tabelle ein Flag einführen: "Shutdown".

Die Anwendung muss dann zyklisch die Tabelle anfragen und auf das Flag prüfen. - Ist es "1" wird ein Hinweis in der Anwendung angezeigt, mit der Möglichkeit die Anwendung zu beenden. Bestätigt der Nutzer das nicht, läuft die Anwendung einfach weiter.

Haben alle Nutzer bestätigt und die Anwendung beendet, kannst du dein Update ausführen und das Flag wieder auf 0 setzen.

Schön ist die Lösung nicht, aber es ist neben der Lösung von BerndFfm, das einzige was mir einfällt was halbwegs i.O. erscheint.

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

2.078 Beiträge seit 2012
vor 2 Jahren

Ich schließe mich dem an: Blöde Idee 😁
Ihr baut euch nur Probleme, wie das dann aussieht, habe ich das letzte Jahr live und in Farbe bewundern dürfen/müssen.

Früher hatte ich eine Anwendung mit ClickOnce verteilt, klappt gut, hat bei uns aber aus irgendwelchen Gründen immer öfter für Probleme gesorgt, warum, das habe ich nie herausgefunden.
Stattdessen habe ich dann eine eigene Alternative basierend auf AutoUpdater.NET gebaut, da hatte ich dann auch mehr Möglichkeiten, was gerade für intern genutzte Anwendungen praktisch ist.

In beiden Fällen liegen die Versionen dann auf dem Server und die Clients laden sich dann immer den neusten Stand runter, geprüft wurde z.B. beim ersten Start des Tages
Bei ClickOnce konnte man dann auswählen, ob aktualisiert werden soll, was manche Mitarbeiter kategorisch abgelehnt haben.
Der Selbst-Bau war da flexibler, da konnte ich dann einstellen, ob's ein Pflicht-Update ist, oder nicht.

463 Beiträge seit 2009
vor 2 Jahren

Naja - es gibt da noch eine einfache Hardcore Lösung.... Einfach den Server neu starten auf dem die Netzwerkfreigabe ist. Nach dem Neustart hast du Zugriff - es sein denn ein User war schnell mit dem erneuten starten der Application.

Oder einfach über Computerverwaltung / Freigegebene Ordner / Geöffnete Dateien die Datei schließen...

ACHTUNG: Dieser Vorschlag ist nicht ganz ernst zu nehmen - technisch funktional, prakltisch Schwachsinn 🙂

309 Beiträge seit 2020
vor 2 Jahren

Mit WMI könnte es vielleicht auch möglich sein:
Query and kill a process on a remote computer using PowerShell and WMI

16.806 Beiträge seit 2008
vor 2 Jahren

Die Ursache des Problems ist, dass die Anwendung nicht ordentlich verteilt wird sondern über ein Netzwerklaufwerk, was so ziemlich die schlechteste Idee ist, die man in einem Windows-Unternehmensnetzwerk machen kann (auch wenns manche aus Faulheit/Bequemlichkeit machen, andere Gründe erkenne ich nicht).
Alles, wirklich alles, was man dafür braucht, existiert.
App management documentation - Configuration Manager

Warum in 1000 Jahren soll es nun eine gute Idee sein die Symptome und Seiteneffekte zu workarounden, die Aufwand kosten dann neue Probleme bringen werden?
Warum nicht einfach den grundlegenden Fehler, dass die Exe auf dem Netzwerklaufwerk liegt, beheben und die Anwendung einfach ordentlich, kontrolliet ausrollen?
Würde das Problem nachhaltig lösen.