Die anderen Antworten lösen, um die IIS-Restriktions. Ab ASP.NET Core 2.0, Kestrel-Server auferlegt auch seine eigenen Standardgrenzwerte.
Github of KestrelServerLimits.cs
Announcement of request body size limit and solution (quoted below)
MVC Anleitung
Wenn Sie die max Anfrage Körpergrößenbegrenzung für eine bestimmte MVC Aktion oder Controller ändern möchten, können Sie das RequestSizeLimit
Attribut verwenden. Das Folgende würde MyAction
ermöglichen, Anforderungsstellen bis zu 100.000.000 Bytes zu akzeptieren.
[HttpPost]
[RequestSizeLimit(100_000_000)]
public IActionResult MyAction([FromBody] MyViewModel data)
{
[DisableRequestSizeLimit]
kann verwendet werden, um Anforderungsgröße unbegrenzt zu machen. Dadurch wird das Verhalten vor 2.0.0 für die zugewiesene Aktion oder den Controller wiederhergestellt.
generische Middleware Instructions
Wenn die Anforderung von einer MVC Aktion nicht behandelt wird, kann immer noch die Grenze auf einer Basis pro Anforderung modifiziert werden, um die IHttpMaxRequestBodySizeFeature
verwenden. Zum Beispiel:
app.Run(async context =>
{
context.Features.Get<IHttpMaxRequestBodySizeFeature>().MaxRequestBodySize = 100_000_000;
MaxRequestBodySize
ist ein nullable lang. Wenn Sie den Wert auf null setzen, wird das Limit wie bei MVC [DisableRequestSizeLimit]
deaktiviert.
Sie können das Limit nur für eine Anfrage konfigurieren, wenn die Anwendung noch nicht gestartet wurde; Andernfalls wird eine Ausnahme ausgelöst.Es gibt eine IsReadOnly
-Eigenschaft, die Ihnen mitteilt, ob die MaxRequestBodySize
-Eigenschaft schreibgeschützt ist, was bedeutet, dass es zu spät ist, das Limit zu konfigurieren.
Globale Config Anleitung
Wenn Sie die max Anfrage Körpergröße global zu ändern, kann dies durch Modifizieren eine MaxRequestBodySize
Eigenschaft in der Callback entweder von UseKestrel
oder UseHttpSys
erfolgen. MaxRequestBodySize
ist in beiden Fällen ein NULL-Wert. Zum Beispiel:
.UseKestrel(options =>
{
options.Limits.MaxRequestBodySize = null;
oder
.UseHttpSys(options =>
{
options.MaxRequestBodySize = 100_000_000;
Sie wahrscheinlich 30MB gemeint, GB nicht – jao