NetScaler/IIS: 413 Слишком большой объект

Я столкнулся с проблемой, когда я получаю 413 Request Entity Too Large всякий раз, когда я отправляю/отправляю JSON на наши серверы с IIS 7.5 через Citrix NetScaler.

Мы попытались установить для aspnet:MaxJsonDeserializerMembers значения 30000, 40000 и 512000 следующим образом:

<appSettings>
  <add key="aspnet:MaxJsonDeserializerMembers" value="xxx" />
</appSettings>

а также установить <jsonSerialization maxJsonLength="xxx"/>

Но без разрешения.

Установка aspnet:MaxJsonDeserializerMembers в нашей локальной тестовой среде, где у нас нет Citrix NetScaler, прекрасно работает.

Есть ли какие-либо настройки в NetScaler, о которых мне следует знать? или Есть ли какие-то настройки IIS, о которых я также должен знать, учитывая, что это работает в наших локальных тестовых средах, я склоняюсь к более позднему, но я не хочу, чтобы вся база была скрыта.


Редактировать: после дальнейшего изучения кажется, что NetScaler является источником, поскольку мы можем отправлять сообщения в API из-за NetScaler.


person Jens    schedule 06.07.2015    source источник


Ответы (1)


Как оказалось, на самом деле это была комбинация двух продуктов.

Внутри мы используем SSL и клиентские сертификаты, что означает, что нам нужно настроить свойство IIS с именем «uploadReadAheadSize».

http://forums.asp.net/t/1702122.aspx?cannot+find+uploadReadAheadSize+in+applicationHost+config+in+IIS7+5

Это делается в конфигурации хоста или через диспетчер IIS.

...
<system.webServer>
 <serverRuntime uploadReadAheadSize="{BYTES}" />
</system.webServer>
...

На данный момент мы использовали 10 МБ = 10485760 байт, что показывает, что этого достаточно. Поскольку по умолчанию это значение равно 48 КБ, вы можете достичь этого довольно быстро.

person Jens    schedule 08.07.2015