【发布时间】:2021-04-22 13:58:04
【问题描述】:
我的控制器的一个操作在 JSON 响应中返回大量集合,当我向此控制器 WebAPI 发出请求时,不返回响应。所以我已经使用断点测试了这个动作,并且集合被正常填充。最后,我确信这是 WebApi 的问题,因为我已经通过几个客户端(WPF 和 Postman)测试了这个控制器的操作,每个客户端都在等待响应。我认为障碍是我的 WebAPI 的响应大小。我的 WebAPI 在 IIS Express 上运行
所以我有两个问题:
1)。 ASP.NET Core 3.0 上 WebAPI 响应的最大长度是多少?
2)。如何在 ASP.NET Core 3.0 上增加 WebAPI 响应的最大长度?
【问题讨论】:
-
响应应该被缓冲。当您通过浏览器执行此请求时,您是否看到该请求处于待处理状态或已完成。如果待处理,请留下它,并在它完成时留下。因此,即使您增加最大尺寸,我认为您的问题也不会解决。我建议采用分页方法从 API 返回数据。
-
你好@user1672994。当我通过任何客户端甚至浏览器进行请求时,它会在挂起状态下停止并且不会完成,因此我无法收到响应。有什么想法吗?
-
@AllaevBekzod 我的想法是先尝试响应一小段数据,看看您是否真的能得到响应。如果您无法控制服务器端代码(用于调试),那么您就走运了。
-
你好@KingKing。我等待收集订单详细信息(我使用 Northwind 数据库)。订单详情模型有两个导航属性。所以我尝试了另一种方法,我只包含了一个导航属性。当我这样做时,我收到了回复,但是当我包含两个导航属性时,我上面描述的事情发生了。所以最后是的,我实际上得到了回应。您对此有何看法?
-
@AllaevBekzod 从外部请求可能有一些中断(某种断开连接),因此为了获得最可靠的洞察力,您可以直接在服务器端调试代码。我的意思是您可以在服务/api 调用的开始和结束时设置一些断点并在那里等待(从第一个断点转到第二个断点)。如果它似乎需要永远,那是您的服务器代码问题(尚未涉及最大长度配置)。
标签: c# asp.net-core httpresponse iis-express webapi