Ако правиш ASP.NET, определено ще използваш IIS
Ако искате да добавите планирана задача към вашето ASP.net приложение, трябва да използвате нишка, за да извършвате планираните изчисления непрекъснато
Тогава да кажем, че добавяме Quartz.NET фреймуърк към нашето ASP.Net приложение и конфигурацията и т.н. са приемливи.
Този сайт има много малко посещения и сега само няколко души го използват, когато са на работа, но на следващия ден дойдох и видях, че нишките и изчислителните задачи за фоново планиране са спрени, и ако вземете събитието Application_End, ще откриете, че това събитие всъщност е било извикнато.
Тогава трябва да има нещо нередно с механизма за рециклиране на пула от приложения в IIS. Тъй като стандартната настройка на IIS е, че ако пулът приложения на даден сайт не бъде достъпен или поискан за определен период от време, IIS автоматично ще си върне програмния пул и ще прекрати процеса. Нишките в този процес определено няма да оцелеят.
Въпреки това, можем да зададем параметрите на пула на приложенията така, че те да не се рециклират автоматично (някои ситуации са неизбежни, като горещо разгръщане на сайтове, прекомерен брой грешки и др.)
Намерете пула програми, използван от този сайт в IIS, и кликнете върху "Разширени настройки..."
Променете следните настройки в списъка, който се отваря:
Възстановяване - Фиксираният времеви интервал (минути) е променен на 0
- Лимитът за виртуална/специализирана памет (KB) е променен на 0
Модел на процеса - Тайм-аут (минути) се променя на 0
По този начин пулът от програми няма да се рециклира автоматично и някои прости изчислителни нишки във фонов режим ще работят нормално |