Web API 2 Json 输出被截断

我有以下控制器来获取 JSON 数据


    [HttpPost]

    [Route("Clients/Active")]

    public IHttpActionResult SearchClient(ClientSearchParams p)

    {

        List<ClientViewModel> _result = PeopleComponent.SearchClient(p).ToList();

        return Ok<IEnumerable<ClientViewModel>>(_result);


    }

适用于较小的数据(几千行)并返回完整格式的 JSON,但当数据稍大时,响应偶尔会被截断但 200 OK。


知道为什么控制器会随机截断它。完全糊涂了。


万千封印
浏览 441回答 3
3回答

精慕HU

我认为您的问题与此问题有关我认为您可以做的最糟糕的事情是返回数据包而不影响其大小,因此在这种情况下,您应该使用分页。除了苍白之外,我更愿意使用Dto或Rto命名在您的 Web API 中返回的操作的对象。ViewModels 对象与纯 ASP.NET MVC 体系结构更相关,在 Web API 的情况下,客户端可以使用多种不同的方式使用您的端点。

holdtom

Webapi 有一个默认的最大请求大小。它会自动截断大于此值的消息并为您提供无效的 JSON。根据您的 .NET 核心版本,您可以增加它 -例如,在 .NET 4.5 中,您可以编辑 Web.Config 以包含以下内容:<system.web><authentication mode="None" /><customErrors mode="Off" /><compilation debug="true" targetFramework="4.5.2" /><httpRuntime targetFramework="4.5.2" maxRequestLength="100000"/></system.web>

绝地无双

感谢你的帮助。这一行是 web.config 是真正的罪魁祸首,它启用了 http 日志记录。我将 http logging 设置为 false 并且它可以工作 add key="ENABLE_HTTP_LOGGING" value="true" 将其设置为 false 并且一切正常。
打开App,查看更多内容
随时随地看视频慕课网APP