Ein überschreiten der 2-GB-Datei-upload-Begrenzung in IIS 7.5 und .NET
Ich habe eine intranet-Anwendung, das hochladen (.iso) - Dateien, die über 2GB. Es scheint, gibt es viele limitierende Faktoren, um die 2GB Datei Größe.
- Es ist ein browser-Beschränkung im IE und nur IE 9/10 können Sie 2 GB überschritten haben, Laut Eric Recht
- Die maxRequestLength - element der httpRuntime ist vom Typ Int32, der hat einen maximalen Wert 2097151, etwa 2 GB.
Es scheint, Sie können noch eine andere Grenze für die Dateigröße mit maxAllowedContentLength auf etwa 4 GB, wie es ist von Typ "uint", aber was gut tut, wir tun, wenn wir immer noch eingeschränkt durch 2-GB von maxRequestLength?
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="4294967295" />
</requestFiltering>
</security>
<system.webServer>
Hat jemand eine Lösung für das hochladen von Dateien der Vergangenheit das 2GB limit???
- Sehen Sie, diese Frage stackoverflow.com/questions/13129746/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie offen für eine JavaScript-Lösung??. Wenn das der Fall ist, versuchen Sie diese jQuery-plugin, das ermöglicht Ihnen das hochladen großer Datenmengen(viele GB).
Hochladen von Dateien mit HTML5-FileReader-API-Funktionen und Silverlight-fallback, wenn der browser nicht unterstützt die Bereitstellung eines Mechanismus angeregt über TCP/IP senden und empfangen von Paketen mit der entsprechenden ACK. Die Dateien sind hochgeladen von chunks Größe konfiguriert ist(standardmäßig 4 MB).
Plus: Es kommt auch mit einer Datei-queue-Modus.
Hier ist ein Beispiel, wie man es verwenden kann, in einer Razor-Ansicht:
Hier ist der code für die Upload-Aktion:
Kämpfte ich dieses Jahr sehr viel mit großen Dateien hochladen, aus verschiedenen Browsern auf IIS-server. Hier ist was ich gefunden habe:
ASP.NET unterstützt das hochladen von mehr als 2Gb da .Net 4.5 (wahrscheinlich es unterstützt Dateien bis zu
long.MaxValue
). Aber der IIS selbst unterstützt keine uploads über 2 GB. Also alle server, die in IIS gehostet unterstützt keine uploads über 2 GB.Meinem Verständnis die Einstellung
maxAllowedContentLength
odermaxRequestLength
auf Werte von mehr als 2Gb nicht helfen, weil diese Einstellungen sind für ASP.NET und der Kern ist in IIS.War ich in der Lage, upload bis zu 4 GB mit Web-APIs und IIS, indem Sie unter änderungen.
In der web-api-Projekt, unten 2 änderungen in web.config-set max Längen.
Hinzufügen der chunked header an client-Seite beim web-api-aufrufen, wie unten dargestellt, die beendet den IIS-Einschränkung von Dateien über 2 GB werden durch ein streaming der Datei-
Hinzufügen folgenden code vor dem Lesen der stream auf der server-Seite (web-api-controller), überladene Methode GetBufferlessInputStream(disableMaxLength) zu ignorieren, max Anfrage Länge von 2 GB-
Die Politik zu ändern-Auswahl im server-Seite, so dass die Pufferung ist deaktiviert & Datei gestreamt wird, statt.Fügen Sie unter der Klasse überschreiben WebHostBufferPolicySelector für Ihre Steuerung (z.B. "Datei" - controller im snippet unten)-
Hinzufügen unten in die Register-Methode-
Hoffe, dies hilft jemand da draußen.