ASP.NET Web API 2截断json响应

问题描述 投票:0回答:1

我的API调用遇到一个非常奇怪的间歇性问题。有时响应被截断

  • [没有关于如何或何时截断的模式。
  • 响应大小为200kb,配置的响应限制为20mb。

格式化程序配置:

private static HttpConfiguration ConfigureFormatters(this HttpConfiguration config)
{
    config.Formatters.Clear();
    config.Formatters.Add(new JsonMediaTypeFormatter());
    config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();

    return config;
}

简化的Api呼叫:

[HttpGet, Route]
public IHttpActionResult Explore(int cityId)
{
    var lists = exploreBuilderService.Build(cityId);
    return Ok(lists);
}

lists类型是List<SomeModel>SomeModelDTO,没有循环引用。

示例响应:

Response Headers
Content-Type: application/json; charset=utf-8
Server: Microsoft-IIS/10.0
X-Powered-By: ASP.NET
Date: Fri, 17 Jan 2020 12:02:37 GMT
Content-Length: 290248

Data
[..., {"id":47

...是数组中的其他对象。看起来json响应字符串是在随机位置剪切的。当响应如下时,我们的android应用程序失败,并显示MalformedJsonException。对于相同的数据集,它仅发生5-10次请求。

您遇到这样的问题吗?我应该在哪里寻找导致此问题的潜在问题?

c# asp.net json json.net asp.net-web-api2
1个回答
0
投票

问题出在我们其中一个响应拦截的中间件。

© www.soinside.com 2019 - 2024. All rights reserved.