2013-10-14 3 views
3

У нас есть базовая настройка ASP Web API: один ApiController с рядом методов, настроенных как конечные точки для запросов POST. Они получают довольно большие потоки JSON, которые десериализуются через атрибут [FromBody].Неработающее соединение не отключается

Случается, что если соединения прерваны/завершены, запросы сохраняются в очереди запросов рабочего процесса IIS. Они, похоже, не тайм-аут. Хуже, так как что-то в RequestHandler сохраняет занятость, после ряда сбоев и «застрявших» запросов потребление процессора составляет около 100%. Журнал показал, что методы действия в ApiController еще не выполнены.

Чтобы сделать большой рассказ коротким. Есть ли что-нибудь, что я могу сделать, чтобы позволить этим методам тайм-аут, чтобы они были удалены из очереди? Обычный web.config, похоже, не работает.

+0

набор отладки = ложным, если это правда .. Найти связанный обсуждение здесь (http://stackoverflow.com/questions/2231015/is-there-a-way-to-make-executiontimeout-take- effect-while-debugging) –

+0

Я отредактировал ваш заголовок. Пожалуйста, смотрите: «Если вопросы включают« теги »в их названиях?] (Http://meta.stackexchange.com/questions/19190/), где консенсус« нет, они не должны ». – Stijn

ответ

2

в большинстве случаев компиляции отлаживать = правда есть проблема .. Here еще некоторое обсуждение подобного вопроса .. если это тоже не помогает ... взять дамп памяти процесса w3wp когда потребление CPU находится рядом 100% и провести анализ дампа с помощью инструментов отладки Windows.

0

Вы можете настроить параметры переустановки пула приложений. В этих настройках из IIS вы можете повторно использовать пул приложений, используя расписание, номер запроса или определенный предел МБ.

Смежные вопросы