2016-05-05 2 views
1

У меня есть asp.net веб-апи приложение, размещенное в IIS. Это приложение имеет 100 МБ в <httpRuntime maxRequestLength=... и в <requestLimits maxAllowedContentLength=.... Но иногда клиент получает 413 Request entity too large в ответ на довольно небольшие запросы. Я видел некоторые исправления типа «просто изменить uploadreadaheadsize». Но на самом деле для меня это решение непонятно. Почему я сталкиваюсь с этой ошибкой, когда параметры запроса настроены правильно?
Update1: еще одна деталь - это приложение использует аутентификацию сертификатов клиентов.
Update2: Я нашел это https://technet.microsoft.com/en-us/library/cc737382(v=ws.10).aspxasp.net Web API: IIS8 - (413) Request Entity Too Large

ответ

1

Here вы можете найти описание причины этой проблемы. Я установил uploadreadaheadsize до 1 mb вместо по умолчанию 49152 b. Я использовал этот Powershell скрипт:

Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -filter "system.webserver/serverruntime" -name "uploadreadaheadsize" -value 1048576 

На самом деле я думаю, что этот сценарий должен работать тоже (это не настолько глобально):

Set-WebConfigurationProperty -PSPath "iis:\Sites" -location "sitename here" -filter "system.webserver/serverruntime" -name "uploadreadaheadsize" -value 1048576