c# - 在控制器级别增加 .net 控制器 MaxResponseBufferSize
问题描述
我已阅读 MaxResponseBufferSize 可以在启动时通过以下代码设置
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.ConfigureKestrel(x => x.Limits.MaxResponseBufferSize = 10485760).UseStartup<Startup>();
});
是否在启动时设置控制器/动作级别的限制。就像在某些属性中添加它一样
解决方案
简短的回答:没有。
MaxResponseBufferSize
limit 是一个低级的 Kestrel 实现细节,它独立于HttpContext
. 它不知道当前正在执行(或完成执行)哪个控制器或动作,因此您无法调整它在动作中的工作方式。
原因RequestSizeLimit
是可配置的,与MaxResponseBufferSize
默认情况下不读取请求正文不同,除非您隐式(使用模型绑定[FromBody]
)或显式(Request.Body.Read*
方法)从请求中读取正文流。这发生在端点级别,因此 ASP.NET Core 公开了相关管道,以便在需要时更易于配置。
推荐阅读
- xamarin.forms - 如何截取应用截图上传应用商店?
- sql - 带有数组通配符的“不喜欢任何”子句不起作用
- java - 我们可以在 BlueJ IDE 中加载 .fxml 文件吗?
- r - 根据行中的模式添加后缀
- android - 从片段函数更改 TextView 的值
- r - 如何使用唯一 ID 使用循环代码构建子集
- powershell - Powershell:无法使用 ControlM 发送电子邮件
- javascript - 在 webpack.config.js 中导入库的推荐方法是什么?
- google-apps-script - 将行附加到特定列?
- javascript - 如何将从我的机器上传的 csv 文件保存到 javascript 中的数据对象中?