我读过MaxResponseBufferSize可以在启动时通过以下代码设置
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.ConfigureKestrel(x => x.Limits.MaxResponseBufferSize = 10485760).UseStartup<Startup>();
});
是否有在启动时设置控制器/动作级别限制的规定?比如在这里添加一些属性
短答:没有.
MaxResponseBufferSize
限制是一个独立于HttpContext
的底层Kestrel实现细节。它不知道哪个控制器或动作正在执行(或已完成执行),所以你不能在一个动作中调整它的工作方式。
RequestSizeLimit
与MaxResponseBufferSize
不同的可配置原因是默认情况下不读取请求体,除非您隐式地(使用模型绑定[FromBody]
)或显式地(Request.Body.Read*
方法)从请求中读取体流。这发生在端点级别,因此ASP。. NET Core公开了相关的管道,以便在需要时更容易配置。