在 .net core 中默认的最大请求长度是多少?

6

我想知道在.net core应用中默认的最大请求长度是多少。

我从一些链接中了解到,在asp.net应用程序中,默认限制为4 MB,并且这里也应该适用。

但是在测试中,我发现即使没有覆盖默认限制,我仍然能够上传大小约为14 MB的文件,但对于大小约为30 MB的文件,则会失败。

我当然知道如何增加此限制,但我想知道默认限制是多少。是否有C#代码可以检查?找不到任何相关文档。


这不仅取决于.NET Core,还取决于您使用的Web服务器配置。 - KJBTech
3个回答

5

谢谢,这正是我要寻找的内容。不明白这一部分“当使用Kestrel进行主机托管时”。对于IIS托管,我们是否也需要使用Kestrel服务器和iis作为代理,还是只适用于Linux和Mac情况下的托管? - Satyajit
Kestrel本身是一个独立的跨平台Web服务器,因此可以在Linux、Mac以及Windows上运行。在Windows下,您可以通过在启动时调用.UseIISIntegration()来使用IIS集成。这将使用IIS作为Kestrel后端的代理。 - a-ctor
好的,我们正在使用IIS集成,应用程序通过IIS托管在Windows服务器上。因此,28.6 MB是我要寻找的大小,我的测试也显示在30 MB时会失败,因此不是最大大小的问题。谢谢。 - Satyajit
2
从.NET core 2.0开始,Kestrel的最大默认值似乎也增加到了28.6MB 来源 - Pace

3

默认的最大文件大小为4MB。

如果您想增加上传大小,可以按照以下方式进行:

使用应用程序设置 - 在配置服务方法中。例如,上传高达100 MB的文件。

services.Configure<FormOptions>(options =>
{
    options.MultipartBodyLengthLimit = 100000000;
});

2
如果上传不是多部分的,即Request.Body作为流,该怎么办? - Rebecca
我对.NET 6.0进行了测试,发现默认请求内容大小为30MB而不是4MB。 - Dušan

0

你的执行超时时间可能很短,因为除了最大长度外,你还需要注意网页只能在最长时间内执行。在 PHP 中,它是 60 秒。对于 ASP.NET,你可以修改 web.config,在 httpRunTime 中添加此内容。

<httpRuntime executionTimeout="300" 

其中300相当于5分钟或300/60。

希望这能解决您的问题,祝编程愉快!=)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接