Wie kann ich configure IIS to handle wirklich große Datei-uploads?
Plattform: IIS 6, ASP.Net 2.0 (.Net 3.5), Server 2003.
Ich Baue eine Anwendung, die akzeptiert Dateien von einem Benutzer, verarbeitet Sie, und gibt ein Ergebnis zurück. Hochladen der Datei per HTTP POST an eine ASP.Net web-Formular. Die Anwendung erwartet, einige große Dateien (Hunderte von MB).
Ich bin mit SWFUpload zu erreichen, der upload mit einem schönen Fortschrittsbalken, aber das ist nicht ein Beitrag zu dem Problem, denn wenn ich es umgehen mit einem standard-HTML-Formular verweist auf mein upload accepter Seite, bekomme ich genau denselben Fehler. Bei der Verwendung der Fortschrittsbalken, die upload-weiterhin zu 100%, dann nicht. Mit einem standard-Formular, das Verhalten scheint das gleiche zu sein.
Ich habe da ein problem jetzt hochladen einer Datei, die über 150 MB. Ich habe mich verändert alle Einstellungen, die ich finden kann, aber noch kein Glück.
Hier eine Zusammenfassung von dem was ich geändert habe, so weit:
Im Web.config:
Hinzugefügt, das im inneren system.web:
<httpRuntime executionTimeout="3600" maxRequestLength="1536000"/>
In der Maschine.config:
Im inneren system.web, geändert:
<processModel autoConfig="true" />
zu:
<processModel autoConfig="true" responseDeadlockInterval="00:30:00" responseRestartDeadlockInterval="00:30:00" />
und in MetaBase.xml:
Geändert:
AspMaxRequestEntityAllowed="204800"
zu:
AspMaxRequestEntityAllowed="200000000"
Wenn der upload fehlschlägt, bekomme ich eine 404-Fehlermeldung vom IIS. Meine web-Formular nicht mit der Verarbeitung beginnen, oder zumindest, es nicht machen es zu dem Ereignis Page_Load. Ich warf eine Ausnahme am Anfang des handlers, und es wird nicht ausgeführt, an alle, die auf große Dateien.
Alles funktioniert mit kleineren Dateien (getestet hab ich bis zu etwa 5,5 MB). Ich bin mir nicht genau sicher, was die Datei-Größe ist die Grenze, aber ich weiß, dass mein limit muss höher sein als 150 MB, da dies nicht die größte Datei, die der client hochladen müssen.
Kann jemand helfen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Urlscan wurde aktiv auf allen websites, und hat seine eigene request-entity-Länge begrenzen. Ich war mir nicht bewusst, dass Urlscan wurde, läuft auf unserem server, da es zu einem globalen ISAPI-filter, nicht auf meine eigene Webseite.
Beachten Sie: zu suchen Sie globalen ISAPI-Filter, klicken Sie rechts auf den Ordner Websites in IIS-Verwaltungsdienst, und klicken Sie auf Eigenschaften, dann auf die Registerkarte ISAPI-Filter.
(Ein Hinweis für Googler):
Für IIS7 add unten, um web.config (die ich oben Hinzugefügt
<system.serviceModel>
):Wenn wir lief in dieses Problem, das wir hatten, um die Puffergröße zu erhöhen limit nach diesem KB-Artikel:
http://support.microsoft.com/kb/944886/en-us
Ich weiß, das erwähnt -, ASP -, aber ich glaube, es arbeitete ASP.NET wie gut.
Edit: Hier ist ein link, der vielleicht mehr relevant für Ihre Frage und bieten weitere Optionen:
http://weblogs.asp.net/jgalloway/archive/2008/01/08/large-file-uploads-in-asp-net.aspx
404 und fehlende Page_Load: IIS kann nur die Anforderung nicht verarbeiten, wenn die komplette BEITRAG ist auf dem server. Deshalb, wenn der POST fehlschlägt (wegen seiner Größe), es kann nicht Feuer der Seite Veranstaltungen.
Könnten Sie versuchen, NeatUpload http://www.brettle.com/neatupload.
Aus dem Handbuch: "By default, NeatUpload nicht direkt beschränken die Größe des uploads."
Können Sie auch versuchen, Velodoc XP Edition die mehrere Vorteile gegenüber NeatUpload, einschließlich der Tatsache, dass es verwendet ASP.NET Ajax-Erweiterungen. Siehe auch die Velodoc Website für weitere Informationen.
Ihnen sagen:
Aber 1536000 ist nur 1,5 MB?