Назад | Перейти на главную страницу

Запрос IIS не будет завершен, если открыта «Загрузка файла».

У нас есть приложение ASP.NET, которое возвращает файлы изображений пользователю. Когда пользователь запрашивает изображение, приложение устанавливает соответствующую информацию о содержимом в заголовке и возвращает байты. Мы обнаружили, что если браузер предлагает пользователю открыть или сохранить изображение, запрос IIS останется в состоянии «Отправить ответ» до тех пор, пока пользователь не выберет один из вариантов приглашения.

Проблема в том, что некоторые пользователи не закрывают приглашение, что препятствует выполнению запроса. Как только это произойдет, выполнение других запросов также будет заблокировано. В конце концов, все доступные потоки израсходованы.

Есть ли способ заставить IIS принудительно убить запрос после периода ожидания? Мы пробовали установить «executionTimeout», но это не имело никакого эффекта, поскольку поток запроса не выполняет никакой работы, пока он ожидает ответа клиента на приглашение.

Тайм-аут соединения установлен по умолчанию 120 секунд.

Какой у вас тайм-аут подключения (тайм-аут HTTP KeepAlive)?

Веб-сайт> Ограничения подключений> Тайм-аут подключения. По умолчанию 120 секунд. (Не путать с таймаутом пула приложений). Иногда приложения, которые используют привязку сеанса (закрепленные сеансы), имеют более высокое значение тайм-аута. Установка слишком большого значения увеличит количество подключений.

Вы также должны убедиться, что у вас установлена ​​последняя версия http.sys исправление установлена, версия 6.1.7601.21886.