Verhindert Browser-Timeout bei großen Datei-Uploads

9

Ich habe eine nette kleine Dateiupload-Kontrolle, die ich für ASP.NET-Webformulare geschrieben habe, die einen IFrame und ASP.NET AJAX verwendet.

Bei großen Uploads kommt es jedoch zu einem Zeitlimit des Browsers, bevor das Formular abgeschickt werden kann.

Gibt es eine Möglichkeit, das zu erhöhen?

Ich bin nicht wirklich interessant in alternativen Lösungen, also schlagen Sie nicht vor, das ganze Ding bitte zu ändern. Es funktioniert gut für & lt; 5 Megadownloads, ich möchte es nur bis etwa 8 MB bekommen.

EDIT: Die Einstellung des Timeouts in Page_Load schien nichts zu ändern.

    
FlySwat 21.10.2008, 22:22
quelle

7 Antworten

10

Sie müssen eine Metabasiseinstellung für IIS6 und höher aktualisieren. Der Schlüssel ist "AspMaxRequestEntityAllowed" und wird in Bytes ausgedrückt. Ich empfehle den Metabase Explorer, die Änderung vorzunehmen, obwohl das Waten durch das XML in% systemroot% \ system32 \ inetserv \ metabase.xml möglich ist.

Metabase Explorer: Ссылка

Hmmm, vielleicht rufe ich den falschen Baum an ... Sie würden keine 5 MB-Dateien machen, wenn das nicht schon eingestellt wäre.

Noch ein Stich: Sehen Sie Ihre web.config:

%Vor%

Die maximale Länge der Anforderung ist in Kilobyte und das Ausführungszeitlimit ist in Sekunden angegeben.

    
Godeke 23.10.2008 18:37
quelle
3

Fügen Sie dies in Ihre web.config

ein %Vor%

Dies ermöglicht eine 360-Sekunden-Zeitüberschreitung und 100.000 Kb Upload-Daten gleichzeitig.

Wenn das nicht funktioniert, führen Sie diesen Befehl auf Ihrem IIS-Server aus. (Ersetze [IISWebsitename])

%Vor%

Dies ermöglicht 100.000.000 Byte Upload-Daten gleichzeitig.

    
Carter Medlin 21.07.2010 22:09
quelle
2

Legen Sie in Page_Load Server.ScriptTimeout auf einen Wert fest, der für Sie geeignet ist. Gemessen in Sekunden, glaube ich.

    
JasonS 21.10.2008 22:30
quelle
1

Ich denke, Sie müssen möglicherweise die MaxRequestLength anpassen

Es ist in der Web.config denke ich standardmäßig seine 4megs.

Folgendes würde ~ 10 meg Datei erlauben:

%Vor%     
Brian Schmitt 23.10.2008 18:43
quelle
1

Öffnen Sie Ihre Datei "Web.config" und fügen Sie unter dem Tag " <system.web> " das folgende Tag hinzu:

<httpRuntime executionTimeout="90" maxRequestLength="4096" useFullyQualifiedRedirectUrl="false" minFreeThreads="8" minLocalRequestFreeThreads="4" appRequestQueueLimit="100" enableVersionHeader="true" />

Sehen Sie sich jetzt das Attribut maxRequestLength="4096" des Tags <httpRuntime> an. Wie Sie vielleicht bemerkt haben, müssen Sie lediglich den Wert auf einen anderen Wert Ihrer Wahl ändern (8192 für 8 MB, 16384 für 16 MB, 65536 für 64 MB usw.).

    
omar nazzal 03.02.2016 06:12
quelle
-6

Überprüfen Sie den Code der Velodoc XP-Edition . Es umfasst ein Upload-Streaming-Modul, einen fortsetzbaren Download-Handler und ASP.NET-Upload-Steuerelemente basierend auf ASP.NET Ajax-Erweiterungen und es ist alles Open Source.

Weitere Informationen finden Sie auch auf www.memba.com und www.velodoc.com .

    
jlchereau 02.12.2008 10:37
quelle
-6

Ich habe das mit PHP mit HTML gelöst:

  1. Ich starte eine Sitzung
  2. geben Sie eine Schleife ein
  3. Erstellen Sie eine Schleife, die die Seite, die einen Teil des Jobs erledigt, erneut in a lädt Zeit
  4. tun, bis der Job erledigt ist
  5. Der Code innerhalb der Schleife macht einen Teil des Jobs
  6. erhöht eine Sitzungsvariable, um auf den nächsten Teil des Jobs zu zeigen
  7. Laden Sie die Seite mit Hilfe von Java-Skript neu // damit werden die Server neu gestartet Seitentimer
  8. Schleife
  9. Laden Sie eine Seite, um zu melden, dass der Job erledigt ist
Dooug 06.03.2011 22:39
quelle

Tags und Links