Pokud děláš ASP.NET, určitě použiješ IIS
Pokud chcete přidat plánovanou úlohu do své ASP.net aplikace, musíte použít vlákno, které provede plánované výpočty nepřetržitě
Pak řekněme, že přidáme Quartz.NET framework do naší ASP.Net aplikace a konfigurace a tak dále jsou v pořádku.
Tento web má velmi málo návštěv a teď ho v práci používá jen pár lidí, ale druhý den jsem přišel a viděl, že vlákna a výpočtové úkoly plánování na pozadí byly zastaveny, a pokud si stáhnete Application_End událost, zjistíte, že tato událost byla skutečně vyvolána.
Pak musí být něco špatně s mechanismem recyklace aplikačního poolu IIS. Protože výchozím nastavením IIS je, že pokud aplikační pool na místě není po určitou dobu přístupný nebo žádán, IIS automaticky získá programový pool zpět a proces ukončí. Nitě v tomto procesu rozhodně nepřežijí.
Parametry aplikačního poolu však můžeme nastavit tak, aby nebyly automaticky recyklovány (některé situace jsou nevyhnutelné, například horké nasazení lokalit, nadměrný počet chyb atd.)
Najděte programový pool používaný touto stránkou v IIS a klikněte na "Pokročilá nastavení..."
Změňte následující nastavení v seznamu, který se otevře:
Obnova - Pevný časový interval (minuty) změněn na 0
- Limit virtuální/dedikované paměti (KB) změněn na 0
Model procesu – Timeout v klidu (minuty) je změněn na 0
Tímto způsobem se programový pool nebude automaticky recyklovat a některá jednoduchá výpočetní vlákna na pozadí budou fungovat normálně |