5

Używam aplikacji internetowej ASP.NET Core i chcę przesyłać duże pliki.Zwiększ limit długości żądania przesyłania w Kestrel

Wiem, że kiedy uruchomiony IIS, limity mogą być zmieniane poprzez web.config:

<httpRuntime maxRequestLength="1048576" /> 
... 
<requestLimits maxAllowedContentLength="1073741824" /> 

Jak można zrobić równowartość podczas uruchamiania nowego serwera WWW ASP.NET Rdzeń Kestrel?

Otrzymuję wyjątek "Żądaj treści zbyt dużej."

Odpowiedz

7

Znalazłem this helpful announcement, który potwierdza, że ​​istnieje limit wielkości ciała 28,6 MB, począwszy od ASP.NET Core 2.0, ale co ważniejsze pokazuje, jak się z nim obejść!

Podsumowując:

Dla pojedynczego kontrolera lub działania, należy użyć atrybutu [DisableRequestSizeLimit] mieć żadnych ograniczeń lub [RequestSizeLimit(100_000_000)] określić limit niestandardową.

Aby zmienić globalnie wewnątrz metody BuildWebHost(), wewnątrz pliku Program.cs, dodaj opcję .UseKestrel poniżej:

WebHost.CreateDefaultBuilder(args) 
    .UseStartup<Startup>() 
    .UseKestrel(options => 
    { 
    options.Limits.MaxRequestBodySize = null; 
    } 

Dalsze jasności, można również zapoznać się z Kestrel options documentation.

+0

Przykro mi, to dziwne, że mogę odpowiedzieć na moje własne pytanie, ale mam nadzieję, że inni skorzystają z tego. – ToddBFisher

+2

Udzielenie odpowiedzi na własne pytanie jest [doskonale w porządku] (https://stackoverflow.com/help/self-answer) i zachęca się do tego w dowolnym momencie, jeśli masz pytanie, które uważasz za przydatne! Dzięki za poszukiwanie! :) – poke

Powiązane problemy