IIS маркирует рабочий процесс нездоровым
Я использую Windows 2012, .net 4.5. У меня есть веб-приложение, которое может иногда выполнять тяжелую обработку и поддерживать сервер в течение некоторого времени (~ 8-10 минут).
Я случайно вижу, что WAS убивает рабочий процесс, так как он не может своевременно реагировать на запросы.
Поэтому я установил для свойства pingEnabled в App Pool значение false, поскольку я думал, что WAS не собирается пинговать рабочий процесс и, следовательно, не уничтожать его.
Но я вижу, что это все еще убивает рабочий процесс и отмечает его нездоровым. Есть ли способ настроить его, чтобы он не пинговал, я стараюсь держаться подальше от случайного увеличения времени ожидания пинга и т. Д.
1 ответ
Вы можете попробовать использовать новый метод QueueBackgroundWorkItem.
Это было создано для обработки долго выполняющихся заданий, которые создаются внутри ASP.net.
QBWI планирует задачу, которая может выполняться в фоновом режиме, независимо от любого запроса. Это отличается от обычного рабочего элемента ThreadPool тем, что ASP.NET автоматически отслеживает, сколько рабочих элементов, зарегистрированных через этот API, в данный момент выполняется, и среда выполнения ASP.NET будет пытаться отложить завершение работы AppDomain до завершения выполнения этих рабочих элементов.
Я считаю, что для этого требуется asp.net 4.5.2, поэтому вам может потребоваться обновление для получения этой функциональности.