Hallo,
ich suche nach einer Möglichkeit, einfach, schnell und zuverlässig große Datenmengen (eine Datei kann 50 GB groß Sein) zwischen zwei oder mehr Systemen zu übertragen.
Es werden in der Regel nicht viele Dateien sein.
Quell und Zielsystem würden im gleichen LAN Subnetz stehen. Es soll auch ein Fortschrittsbalken sichtbar sein.
Mit welchen Technologien aus dem .Net Framework 4.5 lässt sich dies am besten realisieren?
Willst den Leuten nicht auch verraten, von was für einem System (Datenbank? Dateien? Was für Dateien?) Du überhaupt sprichst?
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Wenn es hier um das kopieren von Dateien geht, wonach sich dein Beitrag aktuell anhört, würde ich robocopy nehmen.
Aber ohne Details was für Daten du von wo nach wo schieben willst, können wir nur raten.
Also bitte mehr Details was du genau vorhast.
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.
Willst den Leuten nicht auch verraten, von was für einem System (Datenbank? Dateien? Was für Dateien?) Du überhaupt sprichst?
Es handelt sich um "VHD" (virtuelle Festplatten) und Text Dateien. Daher sollte eine Binäre Übertragungsart vermutlich die richtige sein.
Wenn es hier um das kopieren von Dateien geht, wonach sich dein Beitrag aktuell anhört, würde ich robocopy nehmen.
Aber ohne Details was für Daten du von wo nach wo schieben willst, können wir nur raten.
Also bitte mehr Details was du genau vorhast.T-Virus
Dateien, siehe oben. Ich möchte keine anderen Tools ansteuern.
Die Übertragung soll durch das Programm, welches auf dem Quell und Zielsystem laufen soll, durchgeführt werden.
Dateien sind aber nicht gleich Dateien. Das sollte klar sein.
XML oder allgemein Textdateien lassen sich viel leichter abgleichen, sodass Du nur die Unterschiedene der Datei übertragen musst.
Das ist bei Binärdateien so nicht (so einfach) möglich.
Ich würde dafür sicherlich keine .NET Features, sondern sowas wie rsync oder File Replication Service / DFS Replication in Betracht ziehen, die dann auch auf potenzielle Fehler viel besser reagieren.
Klassischer Fall, dass man sowas nicht selbst machen sollte, wenn es kein Kernwissen ist.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Kennt ihr denn rsync apis oder wrapper für c#? Ich möchte ungerne ein externes Programm ansteuern.
Über Google nichts gefunden?
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
@brave_snoopy
Wüsste nicht, dass es dafür Anbindungen(Wrapper) für C# gibt.
Aber wirklich schwer wäre eine Einbindung mit ProcessStartInfo jetzt auch nicht.
Wäre natürlich etwas unschön es so zu lösen, aber wenn du keine andere Lösung findest, dann liese es sich erst einmal nur so auf die schnelle lösen.
Alternativ könntest du schauen, ob es ähnliche Lösungen wie rsync mit C# gibt.
Ich kann mir gut vorstellen, dass jemand sich schon einmal die Mühe gemacht hat um diesen Ansatz anzugehen.
Aber hier musst du, wie Abt schon schrieb, selbst per Google suchen.
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.
rsync.net Sieht auf den ersten Blick bisschen chaotisch aus (github halt). Müsstest du testen, ob das was ist für dich.
LaTino
"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)