Сброс подключения к браузеру — ASP.NET MVC только при возврате модели с более чем N элементами

Я работаю над приложением ASP.NET MVC. Есть частичные представления, контроллер, обработчик и модель, которая повторяется, и ее элементы отображаются в представлении. Он отлично работает, пока в моем списке не будет более 25 элементов. Если я верну 26 элементов, в браузерах (FF и Chrome) появится сообщение Соединение было сброшено:

введите здесь описание изображения

Это частичные просмотры:

Итерация элементов модели:

@foreach(ingredientsListItemModel ingredientsListItem in Model.ingredientsListItems)
    {
        <text>
            <div id="@ingredientsListItem.ContainerDiv">
                @Html.Partial("Partial/ingredientsListItem", ingredientsListItem)
            </div>    
        </text>
    }

Отображение каждого элемента в виде контейнера:

@using (Ajax.BuildForm("AddElement", "Item", Model.FormId, new AjaxOptions { UpdateTargetId = Model.ContainerDiv }))
{
    <div id="ingredientsListitem" class="yui3-g ingredientsListitem">
        <div class="yui3-u-1-3">
            <a href="@url">
                <img src="@Model.ImageUrl" alt="" />
            </a>
        </div>
        <div class="yui3-u-2-3">
            <div class="itemdescription">
                <a href="@url">
                    @MvcHtmlString.Create(Model.ItemDescription)
                </a>
            </div>
        </div>
    </div>
    @Html.HiddenFor(m => m.ingredientsListId);
}

Это методы контроллера, чтобы иметь представление о данных:

Контроллер:

public ActionResult GetingredientsList()
        {
            if (Request.IsAjaxRequest())
            {
                return PartialView("Partial/ingredientsList", Handler.GetingredientsListModel(MvcApplication.ClientApplication));
            }

Обработчик:

  private static IEnumerable<ingredientsListItemModel> GetingredientsListItems(ClientApplication clientApplication)
        {
//Some code...
            return list.ToList();
//if this list contains more than 25 elements it starts failing and showing the Connection reset error.
        }

Я попытался изменить web.config, чтобы включить (но это не сработало):

<configuration> 
   <system.web.extensions>
       <scripting>
           <webServices>
               <jsonSerialization maxJsonLength="50000000"/>
           </webServices>
       </scripting>
   </system.web.extensions>
</configuration> 

Независимо от того, какой элемент находится в списке, это могут быть любые данные, но как только они превышают 25 элементов, происходит сбой. Я думаю, что можно каким-то образом изменить ограничение на размер ответа? в ИИС? в web.config? Кажется, это проблема ограничения размера. Что ж, любая помощь будет очень признательна.


person Alberto Montellano    schedule 07.01.2021    source источник
comment
Существуют также настройки для maxRequestLength и maxAllowedContentLength, которые могут быть задействованы: 4 5 1 фреймворк"> stackoverflow.com/questions/23327338/   -  person David Tansey    schedule 08.01.2021
comment
@DavidTansey, похоже, речь идет о размере ответа контроллера, а не о размере запроса.   -  person Alberto Montellano    schedule 08.01.2021
comment
Как контроллер называется? Там есть запрос if ajax (и нет другого пункта?), Тогда он вызывается ajax? Если это так, на клиенте может быть ошибка, которая создает неправильный uri. Кроме того, возможно ли, что список содержит нули?   -  person Wiktor Zychla    schedule 10.01.2021
comment
Разместите полный код действия контроллера GetingredientsList. Мы не можем воспроизвести проблему.   -  person Amirhossein Mehrvarzi    schedule 11.01.2021
comment
@WiktorZychla это ASP MVC, код показывает, как модель отправляется в частичное представление, а затем модель повторяется в бритве. Данные верны, я пробовал с разными наборами правильных элементов данных, он терпит неудачу только тогда, когда он содержит более 25 элементов размера.   -  person Alberto Montellano    schedule 11.01.2021
comment
@AmirhosseinMehrvarzi возвращает только список элементов, он отлично работает с 25-26 элементами, как только он получает больше, он начинает давать сбой. Вот почему я предполагаю, что это может быть проблема ограничения размера с помощью razor, web.config, IIS?...   -  person Alberto Montellano    schedule 11.01.2021
comment
Я думаю, вам следует воспроизвести свою проблему в минимально возможном приложении и просто опубликовать ее на github, чтобы кто-нибудь мог ее изучить. Без полного кода проблема не воспроизводима.   -  person Wiktor Zychla    schedule 11.01.2021
comment
В какой среде это работает? ИИС? Самостоятельное консольное приложение? Служба приложений Azure? Проверьте состояние процесса Windows или Linux, в котором вы запускаете это — возможно, он дает сбой. Кроме того, либо подключите отладчик, либо итеративно добавляйте сообщения журнала, пока не определите место, ближайшее к сбою.   -  person Roman Polunin    schedule 15.01.2021
comment
просто предложение, уверены ли вы, что 26-й или то, что после него, элементов соответствует его данным. Единственное, что я думаю, это если 26-й неудачник имеет какие-то нулевые значения или любую другую проблему, которая ломает систему, и вы не получаете никакой информации об этом.   -  person maytham-ɯɐɥʇʎɐɯ    schedule 16.01.2021
comment
Попробуйте включить отслеживание неудачных запросов в IIS. Инструкции см. здесь: docs.microsoft.com/en-us/iis/troubleshoot/. Проследите все содержимое и после этого скопируйте/вставьте файл журнала.   -  person Diego Baranowski    schedule 17.01.2021
comment
@maytham-ɯɐɥʇʎɐɯ да, я проверил 26-й элемент, это правильный элемент. Это список с одинаковыми элементами, если я уберу позицию 25, например, будет включена 26-я и все будет хорошо. Кажется, проблема с размером ответа.   -  person Alberto Montellano    schedule 17.01.2021