Benutzer mit den meisten Antworten
Netzwerkabbruch

Frage
-
Hallo,
kann ich mit dem FileWatcher mitbekommen, wann ein Netzwerk die Verbindung verloren hat und wieder verbunden ist.Wenn ja, wie?
Wenn nein, was gibt es für Möglichkeiten?
Das untere habe ich gefunden.
Vielen Dank für Eure Hilfe.Viele Grüße Sandra
bool checkconnection = System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable(); bool checkInternet = new Ping().Send("http://www.google.de", 500).Status == IPStatus.Success; #region use FileSystemWatcher private void FSW_Init() { // Filesystemwatcher anlegen FSystemWatcher = new FileSystemWatcher(); // Pfad und Filter festlegen FSystemWatcher.Path = FromConfig.Path; FSystemWatcher.Filter = "*.LOG"; // Events definieren FSystemWatcher.Changed += new FileSystemEventHandler(FSW_Changed); FSystemWatcher.Created += new FileSystemEventHandler(FSW_Created); FSystemWatcher.Deleted += new FileSystemEventHandler(FSW_Deleted); FSystemWatcher.Renamed += new RenamedEventHandler(FSW_Renamed); // Filesystemwatcher aktivieren FSystemWatcher.EnableRaisingEvents = true; } // Handler für alle Events void FSW_Renamed(object sender, RenamedEventArgs e) { LogHelper.GetLogger().DebugFormat("Rename: " + e.Name); } void FSW_Deleted(object sender, FileSystemEventArgs e) { LogHelper.GetLogger().DebugFormat("Delete: " + e.Name); } void FSW_Created(object sender, FileSystemEventArgs e) { LogHelper.GetLogger().DebugFormat("Create: " + e.Name); } void FSW_Changed(object sender, FileSystemEventArgs e) { LogHelper.GetLogger().DebugFormat("Change: " + e.Name); } #endregion
Antworten
-
Hi Sandra,
Du kannst per Polling fragen, ob es gerade klappt. Das verhindert aber nicht, dass während der Arbeit nach einer erfolgreichen Prüfung auch die Verbindung verloren gehen kann.--
Viele Grüsse
Peter Fleischer (MVP, Partner)
Meine Homepage mit Tipps und Tricks
Kommas richtig setzen! Leben retten!
Wir essen Opa.
Wir essen, Opa.- Als Antwort markiert Sandra Bauer Freitag, 15. Juli 2016 15:50
Alle Antworten
-
Hi Sandra,
den Verlust einer Netzwerkverbindung kann man nur erkennen, wenn man über das Netzwerk zugreift, d.h. der Verlust wird als Fehler beim Zugriff erkannt. Das kann z.B. daran liegen, dass zwar der lokale PC eine Verbindung ins Subnetz haben kann, der Router aber die Datenpakete nicht erfolgreich weiterleiten kann. Du musst also eine Fehlerbehandlung einbauen, um den Verlust zu signalisieren.--
Viele Grüsse
Peter Fleischer (MVP, Partner)
Meine Homepage mit Tipps und Tricks
Kommas richtig setzen! Leben retten!
Wir essen Opa.
Wir essen, Opa. -
Hallo Peter,
und wie würde das gehen?
Verlustsignalisierung?
Danke vorab.
Grüße Sandra
- Bearbeitet Sandra Bauer Dienstag, 12. Juli 2016 07:35
-
Hi Sandra,
mit try/catch kannst Du im Catch-Scope die Ausnahme analysieren und dann den Verlust signalisieren.--
Viele Grüsse
Peter Fleischer (MVP, Partner)
Meine Homepage mit Tipps und Tricks
Kommas richtig setzen! Leben retten!
Wir essen Opa.
Wir essen, Opa. -
Hi Sandra,
natürlich kann man ein regelmäßiges Polling ausführen und gewaltige Netzlast erzeugen und alle anderen Anwender ausbremsen. Damit kann man aber keinen Verlust genau zum Zeitpunkt des Verlustes ermitteln. Der Verlust der Verbindung ist zwischen 2 Abfragen (innerhalb des Polling-Intervalls) und auch während der Arbeit möglich. Hinzu kommt die Möglichkeit eines Time-Outs, welches auch als Abbruch gewertet werden kann. Es führt also kein Weg um ein try/catch mit Auswertung herum.--
Viele Grüsse
Peter Fleischer (MVP, Partner)
Meine Homepage mit Tipps und Tricks
Kommas richtig setzen! Leben retten!
Wir essen Opa.
Wir essen, Opa. -
Hallo Peter,
ich liebe es.
Du weißt bestimmt, dass ich es nicht ganz verstehe.
Also ich habe einen Netzwerkpfadordner.
Aus diesem Ordner muss ich ein File einlesen, wenn dieses sich geändert hat.
A) Namen bekannt
B) Namen unbekannt, lediglich alle mit Extesion ".imp"
Sollte nun das Netzwerk ausgesteckt werden, fehlerhaft warum auch immer,
sollte ich eine Meldung erzeugen.bool checkInternet = new Ping().Send("74.327.39.147", 500).Status == IPStatus.Success; if (checkInternet)
So etwas geht ja nicht.
Sicher try catch, dann muss ich
if (!Directory.Exists(WorkingPath)) prüfen?
Kannst mir nicht bitte konkret ein Beispiel geben, wie man diese Anforderung abfängt.Viele Grüße Sandra
-
Hi Sandra,
da eine Verbindung zu jeder Zeit abbrechen kann, muss man damit rechnen und braucht auch nichts vorab zu prüfen. Man muss einfach loslegen und, wenn das sofort nicht klappt oder auch während des Zugriffs nicht mehr klappt, ist der Bediener zu informieren. Es kann außer dem gezogenen Stecker u.U. auch noch weitere Ursachen für den Verlust des Zugriffes geben.--
Viele Grüsse
Peter Fleischer (MVP, Partner)
Meine Homepage mit Tipps und Tricks
Kommas richtig setzen! Leben retten!
Wir essen Opa.
Wir essen, Opa. -
Hi Sandra,
ich will Dich nicht entmutigen, aber die Technologie des Internets ist so konzipiert, dass keine Lösung vorgesehen ist, jemanden zu informieren, wenn einer der vielen Möglichkeiten eintritt, die zur zeitweiligen Unzustellbarkeit (z.B. auch Time-Out) oder zur längerfristigen Unzustellbarkeit von Datenpaketen führen kann.--
Viele Grüsse
Peter Fleischer (MVP, Partner)
Meine Homepage mit Tipps und Tricks
Kommas richtig setzen! Leben retten!
Wir essen Opa.
Wir essen, Opa. -
Hallo,
ich denke über diese Richtung könnte es gehen.Viele Grüße Sandra
//Thread. public void MonitorFolderAvailability() { while (true) { if (this.IsNetworkAvailable) { if (!Directory.Exists(path)) { this.IsNetworkAvailable = false; EventNetworkPathAvailablity(); } } else { if (Directory.Exists(path)) { this.IsNetworkAvailable = true; EventNetworkPathAvailablity(); } } Thread.Sleep(this.Interval); } }
-
Hi Sandra,
Du kannst per Polling fragen, ob es gerade klappt. Das verhindert aber nicht, dass während der Arbeit nach einer erfolgreichen Prüfung auch die Verbindung verloren gehen kann.--
Viele Grüsse
Peter Fleischer (MVP, Partner)
Meine Homepage mit Tipps und Tricks
Kommas richtig setzen! Leben retten!
Wir essen Opa.
Wir essen, Opa.- Als Antwort markiert Sandra Bauer Freitag, 15. Juli 2016 15:50