2015-07-15 19 views
7

Weiß jemand, ob es eine Möglichkeit gibt, diesen Fehler zu finden?WebApi 2 Maximale Anforderungslänge überschritten

Im Wesentlichen versuche ich einige Funktionalität zu implementieren, um es einem Benutzer zu ermöglichen, eine Datei von einer Webseite auf einen Webapi-Controller hochzuladen.

Das funktioniert gut, aber wenn die Dateigröße die in der Datei web.config angegebene maximale Größe überschreitet, gibt der Server einen 404-Fehler zurück.

Ich möchte in der Lage sein, dies abzufangen und einen Fehler von 500 zusammen mit einer Nachricht zurückgeben, die vom Client konsumiert werden kann.

Ich kann nicht herausfinden, wo dies in WebApi zu tun, wie die Application_Error-Methode, die ich in Global.asax implementiert hat nie getroffen wird und es scheint, als würde IIS dies nicht an die WebApi-Anwendung übergeben.

+1

Sie benötigen die maximale Anforderungsgröße erlaubt zu erhöhen. Siehe diese Antwort: http://stackoverflow.com/questions/288612/how-to-increase-the-max-upload-file-size-in-asp-net –

+2

Ich habe dies bereits getan, aber ich möchte es sein in der Lage, den Fehler in Fällen zu erfassen, in denen dies überschritten wurde. – llihp

Antwort

3

Versuchen Sie, IIS so einzurichten, dass 2 GB-Anforderungen (in Byte) akzeptiert werden.

<system.webServer> 
    <security> 
    <requestFiltering> 
     <requestLimits maxAllowedContentLength="2147483648" /> // 2GB 
    </requestFiltering> 
    </security> 
</system.webServer> 

Und angemessene Anforderungsgröße für ASP.NET App (in Kilobyte) festlegen.

<system.web> 
    <httpRuntime maxRequestLength="4096" /> // 4MB (default) 
</system.web> 

Jetzt IIS lassen sollten Anfragen weniger als 2 GB, um Ihre Anwendung übergeben, sondern App wird in Application_Error springen 4MB Anforderungsgröße zu erreichen. Dort können Sie verwalten, was Sie zurückgeben möchten.

Wie auch immer, Anfragen größer als 2GB geben immer 404.13 von IIS zurück.

Weiterführende Links:

Dealing with large files in ASP.NET Web API

Verwandte Themen