ASP.NET große Dateien hochladen

Wer ASP.NET Anwendungen betreibt und das Hochladen (Upload) von Dateien ermöglicht, wird in vielen Fällen beim versuch größere Dateien (mehere MB groß) Fehlermeldungen erhalten und der Upload der Datei wird nicht funktionieren.

Viele Anwendungen (z. B. auch DotNetNuke) verwenden Standardeinstellungen in der web.config welche nicht für den Upload großer Dateien ausgelegt ist.

Schauen wir uns am Beispiel von DotNetNuke die hierfür notwendigen Einstellungen einmal an:

< HTTPRUNTIME usefullyqualifiedredirecturl=“true“ maxrequestlength=“4096″ />

Der oben dargestellte Eintrag ist der Standardeintrag aus der web.config DotNetNuke Version 3.1.0.

Durch den Parameter maxRequestLength=“4096″ werden Datei Uploads bis zu einer größe von 4 MB zugelassen.

Allerdings kann es trotz dieser Einstellung zu Fehlern beim Upload von Dateien kommen, auch wenn sie nicht größer sind. Der grund hierfür liegt daran, dass es noch zusätzliche Parameter für den Upload von Dateien gibt, die, wenn Sie nicht explizit angegeben werden mit Ihren Standardwerten verwendet werden.

In unserem Fall ist das der Parameter: executionTimeout.

Dieser Parameter enthält wenn er nicht gesetzt wird den Wert 90 (bedeutet 90 sekunden).

Wenn nun bedingt durch die Bandbreite der Upload einer Datei die auch kleiner sein kann, als der in maxRequestLength eingetragene Wert nicht innerhalb von 90 sekunden hochgeladen werden konnte endet der Upload mit einer Fehlermeldung.

Um nun diesen Timeout zu vergrößern müssen wir den Parameter executionTimeout in die web.config hinzufügen und mt dem benötigten TimeoutWert versehen.

Dies machen wir nun gleich zusammen mit der Erhöhung des zulässigen Wertes für die Dateigröße.

Der web.config Eintrag sollte dann so aussehen:

< HTTPRUNTIME usefullyqualifiedredirecturl=“true“>
executionTimeout=“7200″
maxRequestLength=“16384″ />

Wir erlauben also Dateien bis 16 MB größe und haben den Zeitraum in dem die Datei hochgeladen sein muss auf 10 minuten erhöht.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.