Hallo,
ich versuche eine ca. 13 GB große Datei mittels FileStream.Read über eine instablile und sehr langsame (1 Mbit) WAN-Verbindung zu kopieren.
Nach einiger Zeit (kann nach Minuten oder auch Stunden sein) bekomme ich die Exception, dass diese Netzwerkverbindung nicht mehr existieren würde.
Starte ich das Programm anschließend neu, funktioniert die Verbindung wieder.
Wie kann ich vermeiden, dass das Programm abbricht, wenn die Verbindung verloren geht? Einen Timeout kann ich leider nicht einstellen.
Vielen Dank für eure Hilfe
Christoph
Theoretisch sollte es reichen bei einem Verbindungsabbruch per Seek die letzte Position im Stream zu setzen.
Dann kannst du nach einem Abbruch direkt an der letzten Stelle wieder weitermachen.
Dann kann es auch egal sein ob die Verbindung kurz weg war oder nicht.
Du musst nur diesen Fall per Try/Catch abfangen und dann erneut Read aufrufen nach dem du per Seek die Position gesetzt hast.
T-Virus
Developer, Developer, Developer, Developer....
99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.
Hallo T-Virus,
ich habe noch nie mit Seek gearbeitet.
Das bedeutet, ich benutze nach dem Öffnen der zu lesenden und der zu schreibenden Datei jeweils Seek und mache dann weiter wie zuvor?
Viele Grüße
Christoph
Legt die aktuelle Position dieses Streams auf den angegebenen Wert fest.
Wie in der Doku steht setzt es die Position ab der weiter gelesen respektive geschrieben wird.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hallo,
ich habe einen kleinen Denkfehler begangen.
Ich muss ja nur das Lesen wieder neu starten. Es betrifft das Schreiben nicht, weil lokal geschrieben wird. Lediglich die Quelldatei liegt im WAN.
Danke für die Hilfe
Christoph