Frage

Ich mag mit einem leichten Weg, um eine große Anzahl von Inhouse-.net-Anwendungen zur Verfügung zu verkünden, dass sie verwendet werden. Mein Ziel ist, den Überblick zu behalten, welche Benutzer von der Unterstützung Check-In profitieren könnten und / oder Erinnerungen zu aktualisieren.

Dies ist auf einem Inhouse-Netzwerk. Es ist auf jeden Fall der IP-Konnektivität zwischen allen Maschinen und wahrscheinlich UDP. (Aber wahrscheinlich nicht Multicast).

Schreiben in eine Inhouse-Aktie bekannt oder eine bekannte URL laden Möglichkeiten wäre, aber ich möchte die Auswirkungen auf die Anwendung zu minimieren, sich so vollständig wie möglich, auch auf Kosten der Zuverlässigkeit. So würde ich lieber nicht ein Timeout Risiko (zum Beispiel, wenn ich eine zentralisierte Ressource Ich zugreifen und es ist verschwunden), und im Idealfall würde ich lieber kein Worker-Thread entweder starten.

Es wäre auch schön, mehrere Zuhörer zu ermöglichen, was ein weiterer Grund, warum ich über Rundfunk denke eher als einen Dienst aufgerufen wird.

Gibt es irgendeine Art von Feuer-and-Forget-Broadcast-Mechanismus ich sicher und effektiv für diese verwenden könnte?

War es hilfreich?

Lösung

Es gibt sicherlich viele Möglichkeiten für diese, aber eine, die sehr einfach zu implementieren und entspricht Ihre Kriterien ist ein Asynchronous Web Service Anruf.

Dies bedeutet nicht, dass Sie benötigen einen Worker-Thread zu starten (das Framework hinter den Kulissen tun). Anstatt eines der in diesem Link skizzierten Optionen zu verwenden, um das Ergebnis zu holen, einfach das Ergebnis ignorieren, da es an dem rufenden App bedeutungslos ist.

Andere Tipps

Ich habe etwas ähnliches, wenn auch nicht gerade ein "braodcast"

Ich habe ein Haus in Werkzeug mehrere Nicht-Techies in der Gesellschaft Gebrauch. Ich habe es eine Netzwerkfreigabe überprüft für eine bestimmte EXE (die gleichen EXE Sie den Download starten würde, wenn Sie es nutzen wollen) und vergleichen die Version # diese Datei mit der Ausführung Baugruppe. Wenn die auf dem Netzwerk neuer ist, den Benutzer alarmiert die neuen herunterzuladen.

Viel einfacher als zu versuchen, ein Auto-Updater für etwas einrichten, die nur innerhalb des gleichen Gebäudes wie mich verwendet werden.

Wenn Sie ein Upgrade ist nicht ein Problem (das heißt es gibt keine Fälle, in denen die alte Version verwenden ist besser), können Sie tun, was ich mit etwas tat ähnlich:

Die Anwendung, die Menschen starten tatsächlich ein Aktualisierungsprogramm, überprüft er die Dateiversion und Zeitstempel auf einer Netzwerkfreigabe und wenn eine neuere Version verfügbar ist, kopiert es in das Programmverzeichnis. Es läuft dann das Programm (ob sie aktualisiert wurde oder nicht).

var current = new FileInfo(local);
var latest = new FileInfo(remote);

if (!current.Exists)
    latest.CopyTo(local);

var currentVersion = FileVersionInfo.GetVersionInfo(local);
var latestVersion = FileVersionInfo.GetVersionInfo(remote);

if (latest.CreationTime > current.CreationTime || latestVersion.FileVersion != currentVersion.FileVersion)
    latest.CopyTo(local, true);

Process.Start(local)

Ich habe auch das Programm selbst überprüfen, um zu sehen, ob der Updater aktualisiert werden muss (wie der Updater kann mich nicht aktualisieren, aufgrund von Dateisperren)

Nach einigen Experimenten, die ich unter Verwendung Win32 gute Ergebnisse bekommen dieses .

Mit einem ‚Domain‘ Mail-Fach einen echten Broadcast-Mechanismus bietet, mehrere Zuhörer und keine Voraussetzung für einen bekannten Server ermöglicht wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top