asp.net - 413 请求实体太大 - Web API
问题描述
我在尝试将数据从我的 web 应用程序 (.netfx 4.6.1) 发送到我的 web api (.net core 3.1) 时遇到了 413 问题。在下面的代码中,我发送了一个列表,其中包含图像的字节数据以及构建文件所需的其他数据。预期的输出是返回一个包含新文件的字节数组。不幸的是,在发送请求时我收到一个错误:响应状态代码不表示成功:413(请求实体太大)。
该错误似乎仅在文件开始时才发生,这是有道理的。我所做的研究似乎指向 IIS 中的设置,主要是 maxAllowedContentLength、maxRequestLength 和 uploadReadAheadSize。我尝试将这些值增加到更适合此过程的值,但似乎没有任何效果。我已经为 web 应用程序和 web api 调整了它们,因为我不确定是哪一个导致了问题。
问题出在哪里?在应用程序中、API 中,还是两者兼而有之?我是否缺少其他设置以允许增加尺寸?我发送请求的方式有问题吗?任何帮助表示赞赏。
public static async Task<byte[]> CreatePdfFromImageFilesAsync(List<ImageFile> imageFiles)
{
var list = new List<dynamic>();
foreach (var item in imageFiles)
{
list.Add(new
{
Data = Convert.ToBase64String(item.Bytes),
PageOrder = item.PageOrder,
Rotation = item.Rotation,
Type = "PDF"
});
}
var response = _client.PostAsJsonAsync($"{FileCreatorAPI}/api/files/CreateFileFromMultiple", list).Result;
var result = response.EnsureSuccessStatusCode();
var bytes = await result.Content.ReadAsAsync<byte[]>();
return bytes;
}
解决方案
您可以检查该属性https://github.com/aspnet/Announcements/issues/267吗?使用
[RequestSizeLimit(100_000_000)]
在您的控制器入口点上,或者以这种方式更全局地设置它:
.UseKestrel(options =>
{
options.Limits.MaxRequestBodySize = null;
编辑:来自 MS 的文章:https ://dotnet.microsoft.com/download/dotnet-core
推荐阅读
- python - 如何在数字的偶数索引处打印数字?
- windows - 了解 Autohotkey Controlsend 命令
- typescript - 网页未在赛普拉斯浏览器中加载
- tabulator - 制表符持久性不适用于切换列
- r - 为什么情节没有产生我的所有观点?
- sql - SQL - CASE WHEN THEN ELSE DO
- node.js - 你可以在没有 Yarn 的机器上使用 Yarn2 PnP “零安装”吗?
- java - 为什么 DecimalFormat 舍入不一致?
- data-binding - 没有后端调用的 SAPUI5 绑定元素
- java - 如何避免多次引用 Java 对象