Получение 413 ошибок в IIS при одновременных сеансах с использованием одного и того же сертификата клиента HTTPS
У меня следующая проблема.
Я размещаю приложение WCF на IIS 8, которое принимаеттолько HTTPS-запросы с клиентскими сертификатами. Эта служба принимает сообщения POST, которые могут различаться по размеру (от нескольких байтов до 1 ГБ) и большую часть времени принимаются параллельно.
Клиенты получают слишком большой ответ объекта 413 Request в следующем случае:
Когда несколько соединений открыты стакой же клиентский сертификат и много маленьких файлов загружены. В этом случае один запрос выполняется успешно, а все остальные - с ошибкой 413.Проблема может быть решена путем установкиuploadReadAheadSize
значение большего значения, чем сумма всех размеров параллельного вызова вsystem.webServer/serverRuntime
раздел конфигурации, но это заставляет сервер выделять весь объем памяти для буфера упреждающего чтения для каждого вызова, что приводит к нехватке памяти на сервере в случае многих одновременных вызовов.
Моя конфигурацияработает если звонки сделаны сразные клиентские сертификаты или в случае загрузки одного большого файла.
Я читал, что с IIS 6 была возможность установитьSSLAlwaysNegoClientCert
в конфигурации исправить подобную ошибку. я пыталсяобходные установить это значение, но не удалось с помощью IIS 8.0. Я также попытался отключить кэш клиента SSL, чтобы отключить возобновление сеанса SSL, но это также не решило мою проблему.
Что может вызвать ошибки 413? Есть ли способ включить несколько параллельных загрузок с клиентским сертификатом на один и тот же сервер без использования всей памяти сервера.