J'exécute une application Web ASP.NET Core et je souhaite télécharger des fichiers volumineux.
Je sais que lors de l'exécution d'IIS, les limites peuvent être modifiées via web.config
:
<httpRuntime maxRequestLength="1048576" />
...
<requestLimits maxAllowedContentLength="1073741824" />
Comment pouvez-vous faire l'équivalent lors de l'exécution du nouveau serveur Web ASP.NET Core Kestrel?
J'obtiens l'exception "Le corps de la demande est trop grand."
J'ai trouvé cette annonce utile qui confirme qu'il existe une limite de taille de 28,6 Mo à partir d'ASP.NET Core 2.0, mais montre surtout comment contourner ce problème!
Résumer:
Pour un contrôleur ou une action unique, utilisez l'attribut [DisableRequestSizeLimit]
pour n'avoir aucune limite, ou [RequestSizeLimit(100_000_000)]
pour spécifier une limite personnalisée.
Pour le changer globalement, à l'intérieur de la méthode BuildWebHost()
, à l'intérieur du fichier Program.cs
, Ajoutez l'option .UseKestrel
Ci-dessous:
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseKestrel(options =>
{
options.Limits.MaxRequestBodySize = null;
}
Pour plus de clarté, vous pouvez également vous référer à la documentation des options Kestrel .