Hvis du laver ASP.NET, vil du helt sikkert bruge IIS
Hvis du vil tilføje en planlagt opgave til din ASP.net-applikation, skal du bruge en tråd til at udføre de planlagte beregninger nonstop
Lad os så sige, at vi tilføjer Quartz.NET rammeværk til vores ASP.Net-applikation, og konfigurationen og så videre er i orden.
Denne side har meget få besøg, og nu er det kun få personer, der bruger den, når de er på arbejde, men næste dag kom jeg forbi og så, at trådene og beregningsopgaverne i baggrundsplanlægningen var stoppet, og hvis du henter Application_End event, vil du opdage, at denne event faktisk blev kaldt.
Så må der være noget galt med IIS's genbrugsmekanisme for applikationspoolen. Fordi standardindstillingen i IIS er, at hvis applikationspuljen på et site ikke tilgås eller anmodes om i en periode, vil IIS automatisk genvinde programpuljen og dræbe processen. Trådene i den proces vil bestemt ikke overleve.
Vi kan dog indstille applikationspoolens parametre, så de ikke automatisk genbruges (nogle situationer er uundgåelige, såsom hot-deployed-sites, for mange fejl osv.)
Find programpuljen, som denne side bruger i IIS, og klik på "Avancerede indstillinger..."
Ændr følgende indstillinger i listen, der åbner:
Genopretning - Fast tidsinterval (minutter) ændret til 0
- Virtuel/dedikeret hukommelsesgrænse (KB) ændret til 0
Procesmodel - Inaktiv timeout (minutter) ændres til 0
På denne måde vil programpuljen ikke automatisk blive genbrugt, og nogle simple computertråde i baggrunden vil fungere normalt |