Dacă faci ASP.NET, cu siguranță vei folosi IIS
Dacă vrei să adaugi o sarcină programată în aplicația ta de ASP.net, trebuie să folosești un fir de discuție pentru a face calculele programate non-stop
Apoi, să zicem că adăugăm Quartz.NET framework la aplicația noastră de ASP.Net, iar configurația și așa mai departe sunt OK.
Acest site are foarte puține vizite, iar acum doar câțiva oameni îl folosesc când sunt la serviciu, dar a doua zi am venit și am văzut că firele de discuție și sarcinile de calcul ale programării de fundal au fost oprite, iar dacă accesezi Application_End eveniment, vei descoperi că acest eveniment a fost de fapt anunțat.
Atunci trebuie să fie ceva în neregulă cu mecanismul de reciclare a pool-ului de aplicații al IIS. Pentru că setarea implicită a IIS este că, dacă pool-ul de aplicații al unui site nu este accesat sau solicitat pentru o perioadă de timp, IIS va revendica automat pool-ul de programe și va opri procesul. Firele din acest proces cu siguranță nu vor supraviețui.
Totuși, putem seta parametrii pool-ului de aplicații astfel încât să nu fie pur și simplu reciclați automat (unele situații sunt inevitabile, cum ar fi site-urile hot-deploy, un număr excesiv de erori etc.)
Găsește grupul de programe folosit de acest site în IIS și apasă pe "Setări avansate..."
Schimbă următoarele setări din lista care se deschide:
Recuperare - Interval fix de timp (minute) schimbat la 0
- Limita memoriei virtuale/dedicate (KB) schimbată la 0
Modelul procesului - Timeout-ul inactiv (minute) este schimbat la 0
Astfel, pool-ul de programe nu va fi reciclat automat, iar unele fire simple de calcul în fundal vor funcționa normal |