net::ERR_CONNECTION_RESET/net::ERR_SPDY_PROTOCOL_ERROR для большого объекта Json
Я пытаюсь разрешить пользователю редактировать и сохранять роли пользователей. Внутри этих ролей существуют различные типы объектов, на которые им разрешено иметь права CRUD. Когда я передаю данные из полимера в контроллер через iron-ajax
, он проходит правильно, за исключением случаев, когда для многих из этих объектов установлены права CRUD. Эти объекты и их права CRUD отправляются в виде строки JSON в метод контроллера.
За небольшую сумму (например, 30 предметов с CRUD и 2 других права), он работает успешно. Контроллер получает запрос правильно и роль сохраняется.
Однако, как только я пытаюсь пройти через большое количество (например, 100 элементов с CRUD и 2 другими правами), возникает следующая ошибка:
Я пробовал комбинации настроек handle-as
а также content-type
в iron-ajax
определение, используя params
против body
в вызове ajax, и имея метод контроллера с и без [HttpPost]
приписывать.
Код Iron-Ajax:
<iron-ajax id="saveRole"
url="[[_getUrl('Roles/SaveRole')]]"
method="POST"
handle-as="json"
on-response="_handleSavedRole"
on-error="_handleSavedRoleError">
</iron-ajax>
Вызов функции:
this.$.saveRole.params = { id: this.data.Id, name: this.data.Name, unitPermissions: JSON.stringify(this.data.UnitPermissions), projectPermissions: JSON.stringify(this.data.ProjectPermissions) };
this.$.saveRole.generateRequest();
Подпись метода контроллера:
[HttpPost]
public ActionResult SaveRole(String id, String name, String unitPermissions, String projectPermissions)
Редактировать:
Используя принятый ответ о том, как настроить web.config для разрешения запросов любой длины, выдается ошибка, которая выдается:
Редактировать:
На другом компьютере я получаю другую ошибку для некоторых запросов среднего размера (от 75 до 100):
Я попытался исправить это следующим образом в моем файле web.config, но это не сработало.
<requestLimits maxAllowedContentLength="1073741824" maxQueryString="2097151"/>