2016-06-06 6 views
0

Die neue AspNetCoreModule module genau wie IIS erkennt irgendwie, wenn eine Anwendung abstürzt und neu startet. Wie wird es umgesetzt? Nur indem Sie Windows fragen, ob ein Prozess noch existiert oder etwas subtiler (wie ein RPC-Aufruf vielleicht)? Was passiert, wenn ein Prozess einfach aufhört, was zu HTTP-Timeouts führt?App-Crash-Erkennung von AspNetCoreModule

Antwort

1

Wenn AspNetCoreModule den untergeordneten Prozess erstellt, überprüft es sofort, ob der untergeordnete Prozess aktiv ist, indem es über Socket und vorhandenen Code verbunden wird. Wenn der untergeordnete Prozess aktiv ist, ruft das Modul RegisterWaitForSingleObject mit processInformation.hProcess und einigen Callbacks auf, sodass bei einem untergeordneten Prozess der Callback aufgerufen wird. In dem Fall, in dem der Kindprozess hängt, gibt das Modul nach einer Zeitüberschreitung 502 an den Client zurück und wird den Kindprozess nicht beenden.

+0

Vielen Dank, sehr detaillierte Erklärung! Kann das Modul so konfiguriert werden, dass ein untergeordneter Prozess abgebrochen/neu gestartet wird, wenn es nach einer bestimmten Zeitüberschreitung nicht antwortet? – UserControl