Wenn du ASP.NET machst, wirst du definitiv IIS verwenden
Wenn du eine geplante Aufgabe zu deiner ASP.net-Anwendung hinzufügen möchtest, musst du einen Thread nutzen, um die geplanten Berechnungen ununterbrochen durchzuführen
Angenommen, wir fügen Quartz.NET Framework zu unserer ASP.Net Anwendung hinzu, und die Konfiguration und so weiter sind in Ordnung.
Diese Seite hat nur sehr wenige Besuche, und mittlerweile nutzen nur noch wenige Leute sie bei der Arbeit, aber am nächsten Tag kam ich vorbei und sah, dass die Threads und Berechnungsaufgaben der Hintergrundplanung gestoppt waren, und wenn man Application_End Event aufruft, sieht man, dass dieses Event tatsächlich aufgerufen wurde.
Dann muss mit dem Recyclingmechanismus des Anwendungspools von IIS etwas nicht stimmen. Denn die Standardeinstellung von IIS ist, dass, wenn der Anwendungspool einer Stelle für einen bestimmten Zeitraum nicht abgerufen oder nicht angefordert wird, IIS automatisch den Programmpool zurückfordert und den Prozess beendet. Die Fäden in diesem Prozess werden definitiv nicht überleben.
Wir können jedoch die Anwendungspool-Parameter so einstellen, dass sie nicht einfach automatisch wiederverwendet werden (manche Situationen sind unvermeidbar, wie Hot-Deployment-Standorte, übermäßige Anzahl von Fehlern usw.).
Finden Sie den von dieser Seite verwendeten Programmpool im IIS und klicken Sie auf "Erweiterte Einstellungen..."
Ändern Sie die folgenden Einstellungen in der geöffneten Liste:
Erschütterung – Festes Zeitintervall (Minuten) auf 0 geändert
- Virtual-/dediziertes Speicherlimit (KB) auf 0 geändert
Prozessmodell – Leerlauf-Timeout (Minuten) wird auf 0 geändert
Auf diese Weise wird der Programmpool nicht automatisch wiederverwendet, und einige einfache Computing-Threads im Hintergrund funktionieren normal |