Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
File Up-/Download
Savage
myCSharp.de - Member



Dabei seit:
Beiträge: 94

Themenstarter:

File Up-/Download

beantworten | zitieren | melden

Hi Leute,

ich habe eine größere reine ASP.NET Anwendung. Ich stehe nun vor der Aufgabe, einen Windows-Client zu programmieren, welcher größere Dateien (>1GB) zwischen dem Client und dem Server übertragen soll.
Wie soll ich am besten die Dateiübertragung realisieren bzw. was eignet sich am Besten?
Serverseitig einfach Dateien über ashx Handler übertragen?
Oder Separat einen Socketserver machen?
Webservice?
Das ganze sollte auch über eine verschlüsselte Verbindung funktionieren.

Danke für jede Anregung.
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16145

beantworten | zitieren | melden

Da ist die Frage, wieso über die Anwendung und nicht via FTP.
Das Datenvolumen ist nicht ohne - auch HTTP ist dafür - eigentlich - nicht gedacht.

Ich bin in WebForms nicht so fit; aber ich meine da macht man alles über diese Handler.
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
Savage
myCSharp.de - Member



Dabei seit:
Beiträge: 94

Themenstarter:

beantworten | zitieren | melden

Zitat von Abt
Da ist die Frage, wieso über die Anwendung und nicht via FTP.
Über FTP kann ich es deswegen nicht machen, weil ich serverseitig noch ein paar Aktionen mit dem File machen muss (projekt zuordnen > umbenennen, verschieben etc.)
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16145

beantworten | zitieren | melden

Du kannst den FTP-Zielpfad via FileSystemwatcher auf Aktionen überwachen.
Hier passiert am Anfang ein CREATE-, anschließend ein CHANGE-Event. Mit File.Open() kannst Du testen, ob der Upload fertig ist, wenn es längere Zeit(10 Sek?) keinen CHANGE mehr hab.

Naja. Natur der Sache ist eben hier, dass ein Upload über den Webserver nicht wirklich schnell ist. In Large File uploading to asp.net MVC wird zB auch ein Silverlight-Control vorgeschlagen, das das ganze umgeht.

Ansonsten siehe auch Large file uploads in ASP.NET. Aber diese Treffer kennst Du bereits aus der Google-Suche, die Du bestimmt schon genutzt hast.
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
Savage
myCSharp.de - Member



Dabei seit:
Beiträge: 94

Themenstarter:

beantworten | zitieren | melden

Zitat von Abt
Du kannst den FTP-Zielpfad via FileSystemwatcher auf Aktionen überwachen.
Danke für den Tipp, erscheint mit aber auf den ersten Blick nach einer "frickl" Lösung.

Die Links hatte ich schon gesehen, leider auch keine befriedigende Lösung.

Ich denke nach unserer Diskussion, dass ein Dateiaustausch über den Webserver nicht sinnvoll ist, egal ob ashx-Handler oder Webservice.
Was denkst du über eine TLS/SSL Verbindung in punkto Sicherheit und Performance? Ich hab mich zwar noch nicht im Detail eingelesen, aber in meinem Fall wohl die bessere Option oder?
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16145

beantworten | zitieren | melden

Zitat von Savage
erscheint mit aber auf den ersten Blick nach einer "frickl" Lösung.
Nö, also eine Frickel-Lösung ist das nicht. Ich überwache im Geschäft damit Shares mit einigen TB auf Veränderungen von Anwendern.
Natürlich kann ein Kopiervorgang wegen eines Netzwerkausfalls mal abbrechen, und das wird trotzdem als erfolgreichen Kopiervorgang gewertet - aber sowas kann Dir auch über den Webserver passieren. Dafür gibt's aber Hashsummen, die man bei solchen Datenmengen immer nutzen sollte!
Zitat von Savage

Was denkst du über eine TLS/SSL Verbindung in punkto Sicherheit und Performance?
Natürlich ist das ganze über SSL sicherer. Performance wird in der Theorie langsamer sein. Aber denke kaum messbar. Den Overhead haste halt.
Zitat von Savage

Ich hab mich zwar noch nicht im Detail eingelesen, aber in meinem Fall wohl die bessere Option oder?
Ähm.. in Punkto Sicherheit ja. Aber löst Dein Problem der Technologie ja nicht. Es werden weiterhin HTTP/FTP/Socket-Verbindung benötigt. Da musste Dich also weiter für etwas entscheiden.
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
Savage
myCSharp.de - Member



Dabei seit:
Beiträge: 94

Themenstarter:

beantworten | zitieren | melden

Danke für deine Anregungen, ich werde mir das wohl alles nochmal durch den Kopf gehen lassen ;-)
private Nachricht | Beiträge des Benutzers