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

IIS отмечает нездоровый рабочий процесс

Я использую windows 2012, .net 4.5. У меня есть веб-приложение, которое иногда может выполнять тяжелую обработку и удерживать сервер в течение некоторого времени (~ 8-10 минут).

Я случайно замечаю, что WAS убивает рабочий процесс, так как он не отвечает на свои эхо-запросы своевременно.

Поэтому я установил для свойства pingEnabled App Pool значение false, поскольку я думал, что WAS не будет пинговать рабочий процесс и, следовательно, не убивать его.

Но я вижу, что он все еще убивает рабочий процесс и отмечает его нездоровым. Есть ли способ настроить его, чтобы не пинговать, я пытаюсь держаться подальше от любых случайных увеличений таймаутов пинга и т. Д.

Вы можете попробовать использовать новый метод QueueBackgroundWorkItem.

Он был создан для обработки длительно выполняемых заданий, порождаемых из ASP.net.

QBWI планирует задачу, которая может выполняться в фоновом режиме, независимо от любого запроса. Это отличается от обычного рабочего элемента ThreadPool тем, что ASP.NET автоматически отслеживает, сколько рабочих элементов, зарегистрированных через этот API, в настоящее время выполняется, а среда выполнения ASP.NET будет пытаться отложить завершение работы AppDomain до тех пор, пока эти рабочие элементы не завершат выполнение.

http://blogs.msdn.com/b/webdev/archive/2014/06/04/queuebackgroundworkitem-to-reliably-schedule-and-run-long-background-process-in-asp-net.aspx

Я считаю, что для этого требуется asp.net 4.5.2, поэтому вам может потребоваться обновление, чтобы получить эту функцию.