Jos teet ASP.NET, käytät ehdottomasti IIS:ää
Jos haluat lisätä ajoitetun tehtävän ASP.net-sovellukseesi, sinun täytyy käyttää säikettä suorittaaksesi aikataulutetut laskelmat tauotta
Sanotaan sitten, että lisäämme Quartz.NET kehyksen ASP.Net-sovellukseemme, ja konfiguraatio ja niin edelleen ovat kunnossa.
Tällä sivustolla on hyvin vähän kävijöitä, ja nyt vain harvat käyttävät sitä töissä, mutta seuraavana päivänä tulin katsomaan, että taustalla olevan aikataulutuksen ketjut ja laskentatehtävät oli pysähtynyt, ja jos nappaat Application_End tapahtuman, huomaat, että tämä tapahtuma oli oikeasti kutsuttu.
Sitten täytyy olla jotain vialla IIS:n sovelluspoolin kierrätysmekanismissa. Koska IIS:n oletusasetus on, että jos sivuston sovelluspoolia ei käytetä tai pyydetä tietyn ajan, IIS ottaa ohjelmapoolin automaattisesti takaisin ja lopettaa prosessin. Tämän prosessin langat eivät varmasti kestä.
Voimme kuitenkin asettaa sovelluspoolin parametrit niin, etteivät ne yksinkertaisesti kierrätä automaattisesti (jotkut tilanteet ovat väistämättömiä, kuten kuumasti käyttöön otetut sivustot, liiallinen virhemäärä jne.)
Etsi tämän sivuston käyttämä ohjelmapooli IIS:stä ja klikkaa "Lisäasetukset..."
Muuta seuraavat asetukset avautuvassa listassa:
Palautus – Kiinteä aikaväli (minuutit) muutettiin nollaan
- Virtuaalisen/omistetun muistin raja (KB) muutettu arvoon 0
Prosessimalli – Lepotila-aikakatkaisu (minuutit) muutetaan arvoon 0
Näin ohjelmapoolia ei kierrätetä automaattisesti, ja taustalla toimivat yksinkertaiset laskentasäikeet toimivat normaalisti |