【发布时间】:2019-12-30 12:42:19
【问题描述】:
我需要向我的 API 发布大量数据
[HttpPost]
[RequestSizeLimit(40000000)]
[Route("PostList")]
public async Task<IActionResult> PostList([FromBody] IEnumerable<ItemMasterDto> data)
{
// Do work
return Ok();
}
要发布的示例数据是这样的
[
{
"ExternalMappingId": "I-01",
"GroupName": "string",
"SubGroupName": "string",
"DisplayItemCode": "string",
"ItemDescription": "string",
"DispItemDescription": "string",
"ItemSubDescription": "string",
"UnitSet": "string",
"DefaultTranUnitCode": "string",
"DefaultReportUnitCode": "string",
"IsVatExempted": true,
"IsImported": true,
"IsVATApplicable": true,
"IsSaleable": true,
"HSCode": "string",
"VATPercent": 0,
"IsManufacturing": true
}
{
"ExternalMappingId": "I-02",
"GroupName": "string",
"SubGroupName": "string",
"DisplayItemCode": "string",
"ItemDescription": "string",
"DispItemDescription": "string",
"ItemSubDescription": "string",
"UnitSet": "string",
"DefaultTranUnitCode": "string",
"DefaultReportUnitCode": "string",
"IsVatExempted": true,
"IsImported": true,
"IsVATApplicable": true,
"IsSaleable": true,
"HSCode": "string",
"VATPercent": 0,
"IsManufacturing": true
}
]
它适用于少量数据,但是当我尝试发布超过 100k 的数据时,API 拒绝连接,并且调用失败,状态码为 404(未找到)错误。如您所见,我已经尝试过[RequestSizeLimit(40000000),并且我还尝试在我的 Startup.cs 中关注
services.Configure<FormOptions>(o =>
{
o.ValueLengthLimit = int.MaxValue;
o.MultipartBodyLengthLimit = long.MaxValue;
o.MultipartBoundaryLengthLimit = int.MaxValue;
o.MultipartHeadersCountLimit = int.MaxValue;
o.MultipartHeadersLengthLimit = int.MaxValue;
o.BufferBodyLengthLimit = long.MaxValue;
});
我的总数据可能在 100k 到 200k 之间。我能做些什么 ??提前谢谢。
【问题讨论】:
-
您是否尝试从启动文件中删除请求大小限制和所有额外配置?
-
是的.. 我已经这样做了
-
我确信文件大小没有问题,但使用此参数 IEnumerable
。也尝试发布示例数据 -
我编辑了我的问题并添加了示例数据。请检查 。谢谢
-
IEnumerable
改为尝试 List 。
标签: asp.net-core .net-core asp.net-core-webapi