
Ich habe einen Pool so konfiguriert, dass er automatisch startet und nie in den Ruhezustand wechselt. Ich habe Probleme mit dem automatischen Start. Meines Wissens wird nach einem Recycling ein Thread-Pool-Worker gestartet. Wenn das passiert, würde ich annehmen, dass der Anwendungseinstiegspunkt aufgerufen wird. Das scheint jedoch nicht zu funktionieren.
Wenn die Anwendung bereitgestellt wird, sehe ich die folgenden Protokolleinträge unter dem Sink „IIS AspNetCore Modeule“ V2.
- 28.01.2022 09:25:15 - Laufender Job: Freigabe
- 28.01.2022 09:25:28 Uhr – Die Anwendung „C:<Pfad zur App>“ wurde nach der Erkennung von app_offline.htm wiederverwendet.
- 28.01.2022, 09:25:29 Uhr – Anwendung „MACHINE/WEBROOT/APPHOST//“ wurde heruntergefahren.
- 28.01.2022 09:25:33 - Jobfreigabe abgeschlossen mit Ergebnis: Erfolgreich
Wo
- DevOps Microservice Build - Starten
- Recycle (Build erstellt die App_offline)
- API-Abschaltung
- DevOps Microservice Build gestartet – erfolgreich
Es verwirrt mich, dass keine zugehörige API-Startmeldung wie „Anwendung ‚C:<Pfad zur App>‘ erfolgreich gestartet“ vorhanden ist.
Es ist wichtig zu beachten, dass dies ein .NET Core API-„Mikrodienst“ ist, der keine HTTP-Anfragen entgegennimmt. Im Code hat der Start diese Konfiguration.
services.AddHostedService<AuthorizationMessageConsumerService>();
Und
public class AuthorizationMessageConsumerService : BackgroundService
Wenn nach jeder Bereitstellung ein Ping an den /health-Endpunkt gesendet wird, wird der Dienst gestartet.
Ich kann nur vermuten, dass AlwaysRunning gerade einen neuen Anforderungsthread erstellt hat, aber keinen Einstiegspunkt aufruft, der von einer eingehenden HTTP-Anforderung /health aufgerufen wird.
Ich möchte vermeiden, dass ein Ping eine Build- und Bereitstellungsanforderung ist. Gibt es Optionen oder wäre das Einrichten von Health-Pings in zeitgesteuerten Intervallen und nach der Bereitstellung die beste Lösung?
Antwort1
Das Einzige, was mir fehlte, war Preload Enabled=true auf IIS-Anwendungsebene. Dadurch wird grundsätzlich eine Anforderung gesendet, um Ihre App nach einem Recycling aufgrund einer Bereitstellung oder aus anderen Gründen zu starten.