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