Кажется, что AspNet.Core начинает отправлять ответ, который IEnumerable
сразу, без перебора всей коллекции.Например:
[HttpGet("")]
public async Task<IActionResult> GetData()
{
IEnumerable<MyData> result = await _service.GetData();
return Ok(result.Select(_mapper.MapMyDataToMyDataWeb));
}
Теперь существует исключение, которое происходит во время отображения одного из элементов, поэтому я бы предположил, что ответ 500
, но в действительности получается, что я получаю 200
столько частичный (и неправильный) Json.
Я предполагаю, что это функция, а не ошибка в Asp.Net Core
, обеспечивающая такое поведение, и ее относительно легко исправить, например, с помощью ToList()
, но мне интересноесли есть какой-то флаг, который может предотвратить возникновение этой ситуации, поскольку он не имеет смысла, например, для проекта API и стандартного ответа JSON.
Я не смог найти ничего в документации, которая описывает это поведение икак это предотвратить.
PS Я проверил, что вызов ToList()
устраняет проблему, и ответ 500 с правильным исключением (с UseDeveloperExceptionPage
)