Wie konfiguriere ich IIS für die Verarbeitung wirklich großer Datei-Uploads?

8

Plattform: IIS 6, ASP.Net 2.0 (.Net 3.5), Server 2003.

Ich erstelle eine Anwendung, die Dateien von einem Benutzer akzeptiert, sie verarbeitet und ein Ergebnis zurückgibt. Die Datei wird mithilfe von HTTP POST in ein ASP.Net-Webformular hochgeladen. Die Anwendung erwartet einige große Dateien (Hunderte von MB).

Ich verwende SWFUpload, um den Upload mit einem netten Fortschrittsbalken durchzuführen, aber das trägt nicht zum Problem bei, denn wenn ich es mit einem Standard-HTML-Formular umgehe, das auf meine Upload-Accepter-Seite zeigt, bekomme ich genau den gleichen Fehler. Wenn Sie den Fortschrittsbalken verwenden, wird der Upload zu 100% fortgesetzt und schlägt fehl. Bei einem Standardformular scheint das Verhalten identisch zu sein.

Ich habe gerade ein Problem beim Hochladen einer Datei, die ungefähr 150 MB groß ist. Ich habe alle Einstellungen geändert, die ich finden kann, aber immer noch kein Glück.

Hier ist eine Zusammenfassung dessen, was ich bisher geändert habe:

In der Datei Web.config: Hinzugefügt innerhalb von system.web:

%Vor%

In machine.config: In system.web geändert:

%Vor%

zu:

%Vor%

und in MetaBase.xml: Geändert:

%Vor%

zu:

%Vor%

Wenn der Upload fehlschlägt, erhalte ich einen 404-Fehler von IIS. Mein Webformular beginnt nicht mit der Verarbeitung, oder zumindest nicht mit dem Ereignis Page_Load. Ich habe am Anfang dieses Handlers eine Ausnahme ausgelöst, die bei großen Dateien nicht ausgeführt wird.

Alles funktioniert gut mit kleineren Dateien (ich habe bis zu ca. 5.5MB getestet). Ich bin nicht genau sicher, welche Dateigröße das Limit ist, aber ich weiß, dass mein Limit höher als 150 MB sein muss, da dies nicht die größte Datei ist, die der Client hochladen muss.

Kann jemand helfen?

    
Chris Weisel 15.10.2008, 19:42
quelle

6 Antworten

4

Urlscan war auf allen Websites aktiv und verfügt über ein eigenes Längenlimit für Anforderungselemente. Mir war nicht bekannt, dass Urlscan auf unserem Server lief, da es sich um einen globalen ISAPI-Filter handelte, der nicht auf meiner individuellen Website lief.

Hinweis: Um globale ISAPI-Filter zu finden, klicken Sie mit der rechten Maustaste auf den Ordner Websites in IIS Admin und dann auf Eigenschaften und anschließend auf der Registerkarte ISAPI-Filter.

    
Chris Weisel 15.10.2008, 22:39
quelle
2

Als wir auf dieses Problem stießen, mussten wir die Größe der Puffergröße gemäß diesem KB-Artikel erhöhen: Ссылка

Ich weiß, dass dies ASP erwähnt, aber ich glaube, es hat auch für ASP.NET funktioniert.

Bearbeiten: Hier ist ein Link, der für Ihr Problem möglicherweise relevanter ist und andere Optionen bietet:
Ссылка

    
Chris Roland 15.10.2008 19:46
quelle
1

404 und fehlendes Page_Load: IIS kann die Anfrage nur verarbeiten, wenn sich der vollständige POST auf dem Server befindet. Wenn der POST (aufgrund seiner Größe) fehlschlägt, kann er daher die Ereignisse der Seite nicht auslösen.

Sie könnten versuchen, NeatUpload Ссылка . Aus dem Handbuch: "Standardmäßig beschränkt NeatUpload die Größe von Uploads nicht direkt."

    
devio 15.10.2008 20:00
quelle
1

(Eine Anmerkung für Googler):

Für IIS7 fügen Sie unten web.config hinzu (ich habe oben <system.serviceModel> hinzugefügt):

%Vor%     
Manish Jain 19.12.2011 21:48
quelle
0

Sie können auch Velodoc XP Edition ausprobieren, was einige Vorteile gegenüber NeatUpload hat, einschließlich der Tatsache, dass es ASP.NET Ajax-Erweiterungen verwendet. Weitere Informationen finden Sie auch auf der Velodoc-Website .

    
Jacques 27.11.2008 13:47
quelle
0

Sie sagen:

Aber 1536000 ist nur 1,5 MB?

    
Ewan Makepeace 28.07.2009 04:32
quelle

Tags und Links