我们的应用程序API使用odata,在升级到.net核心3.1 (我们使用.net核心2.2)之前,odata查询能够处理大型数据集(用于网格导出),没有任何问题。但在3.1版本中,我们达到了8192的IAsyncEnumerable缓冲区限制。缓冲区限制的最佳解决方法是什么,增加限制是不可能的,因为用户可能会导出任何数量的记录,这些记录可能会超过缓冲区大小。
我确实注意到odata响应是分块的,所以我尝试使用JavaScript读取响应流,但这也会导致缓冲区异常发生。
发布于 2021-05-20 08:07:35
我遇到了同样的问题(客户端应用程序为Power BI Desktop的OData/ .Net Core3.1)。
在控制器方法上设置页面大小为我解决了这个问题:
[EnableQuery(PageSize = 100)]
public IActionResult Get()
{
return Ok(AppDbContext.BiContracts.AsQueryable());
}https://stackoverflow.com/questions/60742010
复制相似问题