ASP.net HTTP 404 - Datei nicht gefunden, statt MaxRequestLength Ausnahme
Habe ich ein Datei-upload-Steuerelement auf meiner Webseite. Die maximale Anfrage Länge ist auf 8 MB gesetzt (maxRequestLength = 8192
). Ich habe auch server die Validierung, dass ein Fehler ausgelöst, falls die Datei mehr als 4MB. Der Grund dafür, dass seine 8MB in der config ist die Hebelwirkung, die auf die Benutzer und auch so, dass die Anwendung getestet werden kann.
Wenn ich eine Datei hochladen, 9MB, ich bekomme geworfen eine Ausnahme Maximum request length exceeded., das ist in Ordnung und funktioniert wie erwartet. Aber wenn ich versuche, eine Datei hochladen, 1 GB, zeigt er mir eine HTTP 404 - Datei nicht gefunden. Kann mir bitte jemand erklären, warum das passiert und wie kann ich es bekommen, werfen Sie mir eine maxRequestLength Ausnahme?
Ich bin mit IIS6.
InformationsquelleAutor Divi | 2011-01-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erlebte ich diesen Zustand heute (HTTP 404 auf großen Datei-upload mit IIS 7), aber ich dachte, ich hatte alle die richtigen Konfigurationseinstellungen. Ich wollte das hochladen von Dateien bis zu 300MB also machte ich die folgenden web.config-Einstellungen in einem sub-Ordner der Anwendung:
Diese Konfiguration arbeitete im test aber als ich kopiert die Dateien aktualisiert, einschließlich des web.config auf den Produktions-server, erhielt ich die HTTP-404-Fehler beim hochladen eine 90 MB Datei. Kleinere Dateien unter der Anwendung-wide-limit von 30MB arbeiteten sehr gut, so dass ich wusste, es war eine Anfrage Größe problem von einigen Sortieren.
Ich dachte, es war eine chance, IIS zwischengespeichert hatte einige Einstellungen der Anwendung und hatte noch nicht aktualisiert, also ich Recycling der Application-Pool, nach denen alles funktioniert wie erwartet.
maxRequestLength
aber mit zunehmenden Größe der Datei, die ich traf-Fehler 404 undmaxAllowedContentLength
war die Lösung. Danke !Die Unterordner hast du die web.config?
Die gleichen Unterordner upload-Seite ist. Standardmäßig werden die Einstellungen in web.config gelten für alle Seiten in diesem Ordner und seinen Unterordnern. Sie können auch eine <location> - element zum angeben von bestimmten Dateien.
Ich habe dieses das erste mal, aber für alle, die das Lesen, vergesst nicht, dass die maxRequestLength ist in KB, während maxAllowedContentLength ist in bytes!
Gibt es irgendeinen Schaden in nur
maxAllowedContentLength
beliebig groß?maxAllowedContentLength
löst, bevormaxRequestLength
immer, Sie macht das handling der exception schwierig. Ich kann nicht glauben, eine Notwendigkeit für die zwei Prüfungen, wenn Sie tatsächlich tun Sie die gleiche Sache.InformationsquelleAutor pseudocoder
Dies ist ein bisschen ein Alter thread, aber ich dachte, ich sollte hinzufügen, meine Erfahrungen mit diesem.
Ich Stand vor dem gleichen problem mit großer Datei-uploads und der web-api. Ein 404.13 geworfen werden, bevor es zu einem controller an alle, also ich hatte, um herauszufinden, wo zu springen und in diesem Fall behandeln.
Meine Lösung war folgende web.config-Einträge:
Ich mit dem 404.13 dass es zu einem mvc controller (es könnte eine webforms-Seite genau das gleiche), und regelmäßige 404-Fehler, Treffer meine 404-route. es ist wichtig, dass die responseMode="redirect" für die 404.13
Dann, in meiner Fehler-controller, ich habe Folgendes:
Wieder, könnte dies eine regelmäßige webforms Seite.
Diese Antwort hat mein Leben gerettet. Es scheint die einzige Möglichkeit zu sein um das Verhalten von
<requestLimits maxAllowedContentLength="NUMBER" />
, die immer löst, bevor<httpRuntime maxRequestLength="NUMBER" />
im IIS 7+.InformationsquelleAutor ScottE
Fühle ich mich keiner der Antworten hier erklären warum erhalten Sie eine 404 -, Sie nur sagen, die üblichen Sachen, wie das problem zu beheben.
404-nicht durch Fehlkonfiguration, es ist vorsätzliche und dokumentierte Verhalten:
InformationsquelleAutor Stijn
Habe ich festgestellt, dass dieses problem kann auch verursacht werden, auf IIS7 (und vermutlich IIS6), wenn Sie das tool URLScan installiert ist und läuft auf der Website.
Beim hochladen zu einer website, die ich erhalte die Meldung "Datei oder Verzeichnis nicht gefunden. Die gesuchte Ressource wurde möglicherweise entfernt, hatte Ihren Namen geändert, oder ist vorübergehend nicht verfügbar."
Wenn das problem wird verursacht durch URLScan dann, wenn Sie versuchen, laden Sie die große Datei auf der Website, während das surfen innerhalb der Website auf den hosting-server selbst, wird Ihnen ein voll asp.net Fehlermeldung statt einer 404 erwähnt URLScan.
Sie können auch überprüfen, ob URLScan ausgeführt wird, auf Ihrer Website im IIS7, indem der ISAPI-Filter für die website im IIS mit URLScan wird aufgeführt, wenn es verwendet wird.
Dies kann behoben werden durch eine änderung der ini-Datei URLScan befindet sich in "%WINDIR%\System32\Inetsrv\URLscan" und ändern die MaxAllowedContentLength.
Die MaxAllowedContentLength ist in bytes.
Dies kann erfordern, einen IIS-Neustart wirksam werden, wenn es nicht als ich es versucht habe, mich mit dem IIS7.
http://www.iis.net/learn/extensions/working-with-urlscan/urlscan-overview
http://www.iis.net/learn/extensions/working-with-urlscan/common-urlscan-scenarios
InformationsquelleAutor wsys177
Könnten Sie konfigurieren die Standard-Fehler-Seite in IIS selbst.
InformationsquelleAutor
Bitte-Grenze ist eine Einstellung ist IIS. Öffnen Sie die Anfrage Filter-Sektion Ihrer Website in IIS und wählen Sie "Bearbeiten" Request Settings. Für mich war es einfach.
Einer detaillierteren, Wie von Microsoft.
https://docs.microsoft.com/en-us/iis/configuration/system.webserver/security/requestfiltering/#how-to-edit-the-request-filtering-feature-settings-and-request-limits
InformationsquelleAutor DarrenY
Traf ich gerade das gleiche problem, ich habe die ähnliche operation wie pseudocoder ist Antwort haben, aber unterschiedliche( ich denke, vielleicht ist nicht aus dem cache) :
Bearbeiten Sie Ihre Web.config --> maxRequestLength
edit:
genau wie diese,und versuchen Sie es.
maxRequestLength
undmaxAllowedContentLength
verwenden verschiedene Einheiten, ein Satz der in bytes und die andere in Kilobyte, so dass Sie können nicht die gleiche Anzahl auf beiden. Überprüfen Sie google, um zu sehen, was was istInformationsquelleAutor willxiang
Das problem mit den 1GB uploads mehr browser verwandt ist. Ich habe jede Menge Probleme mit ihm und habe versucht, eine Menge von Lösungen, aber die eigentlich Frage hier ist, was sind die Chancen, dass dies geschieht in der realen Welt, die für Ihre Geschäftsanforderungen und vielleicht sollte aufgenommen werden, als ein bekanntes Problem in der business-Regeln oder nicht-funktionalen Anforderungen zu dokumentieren.
Das problem ist, IIS-bezogene, nicht-browser-bezogene. Siehe @pseudocoder Antwort, das setzt die
maxAllowedContentLength
nebenmaxRequestLength
.Dunkel ist, wenn Sie löschen diese Antwort bekommst du deine Punkte zurück ... !
InformationsquelleAutor DarK