Gibt es eine Shutdown-Funktion bei Verwendung Microsoft.AspNet.Server.Kestrel
? ASP.NET Core (früher ASP.NET vNext) hat eindeutig eine Startup-Sequenz, aber keine Erwähnung der Shutdown-Sequenz und wie mit sauberer Schließung umzugehen ist.Kestrel Shutdown-Funktion in Startup.cs in ASP.NET-Core
18
A
Antwort
23
In ASP.NET-Core können Sie den Stornierungs Tokens von IApplicationLifetime
public class Startup
{
public void Configure(IApplicationBuilder app, IApplicationLifetime applicationLifetime)
{
applicationLifetime.ApplicationStopping.Register(OnShutdown);
}
private void OnShutdown()
{
// Do your cleanup here
}
}
IApplicationLifetime
auch Storno Token für ApplicationStopped
und ApplicationStarted
sowie ein StopApplication()
Verfahren bereitgestellt registrieren aussetzt, die Anwendung zu beenden.
9
Zusätzlich zu der ursprünglichen Antwort hatte ich einen Fehler beim Verbinden der IApplicationLifetime innerhalb des Konstruktors.
Ich löste dies tun:
public class Startup
{
public void Configure(IApplicationBuilder app)
{
var applicationLifetime = app.ApplicationServices.GetRequiredService<IApplicationLifetime>();
applicationLifetime.ApplicationStopping.Register(OnShutdown);
}
private void OnShutdown()
{
// Do your cleanup here
}
}
+1
Dies funktioniert ohne Verwendung einer Startup-Klasse, wenn Sie Ihren Webhost manuell von Main konfigurieren. –
Verwandte Themen
- 1. JSON Konfigurationsquelle in Kestrel Setup ignoriert
- 2. IIS vs Kestrel Leistungsvergleich
- 3. Asp.Net 5 MVC 6 Startup.cs Montage Entkopplung in Beta8
- 4. Kestrel Hosting Grundlagen
- 5. Startup.cs-Fehler (ASP.Net-Core-Konfiguration)
- 6. Hinzufügen von DbContextOptions in Startup.cs nicht registrieren Datenspeicher
- 7. Fehlende WebApiConfig.cs in App_Start. Kann ich Startup.cs verwenden?
- 8. Praktische Anwendung von K-Kombinator (Kestrel) in Javascript
- 9. Umleitungsanfrage zum zweiten von Kestrel gehosteten Projekt
- 10. Kestrel auf https mit asp.net Kern 1.0
- 11. Kann ich die ConfigureServices-Klasse async in startup.cs in mvc machen 6
- 12. Verwendung der ConfigureServices und Configure-Methoden in Startup.cs in asp.net vnext
- 13. Kestrel auf ASPnet vNext doesnt Index-Seite unter/
- 14. Compress HTTP-Antworten mit Kestrel und .NET Core Middleware
- 15. Verwenden von Hangfire, Verbindungszeichenfolge in Startup.cs wirft Kann Datei nicht als Datenbankfehler anhängen
- 16. ASP.NET Core Kestrel Server SSL-Client-Zertifikat nur für bestimmte Routen oder Controller
- 17. Ist es möglich oder ratsam, mvc routes von startup.cs zu trennen
- 18. Wie Hosting von Asp.Net vNext Application Hosting auf Kestrel, Helios, WebListener und in separaten Console-Prozess unterscheidet?
- 19. Wie richte ich das Kestrel-Debugging mit Visual Studio-Code unter Windows ein?
- 20. Kann Kestrel mit "dnx web" nicht starten, sagt "aktuelles Laufzeit-Zielframework ist nicht kompatibel"
- 21. ASP.Net Kestrel lädt keine Konsole von Visual Studio, wie kann ich das Problem beheben?
- 22. Was ist der Mehrwert des funktionalen Pattern Design Patterns von Kestrel? (Scala)
- 23. 404 Fehler für jede Aktion mit asp.net Kern MVC
- 24. Wie https in mvc6
- 25. Ausführen von ASP.NET 5 in Cloud 9
- 26. exec: "dnu": ausführbare Datei nicht in $ PATH
- 27. SignalR mit vNext
- 28. ASP.NET 5 vNext EF7 SQLite Type auf Create
- 29. Wie Port-Namen in PHP WSDL angeben
- 30. Hosten von ASP.NET 5 WebAPI in IIS mit einem virtuellen Verzeichnis/Anwendung
Ist das auf allen Betriebssystemen und Servern funktionieren soll? Ich war nicht in der Lage, es auf OSX + Kestrel arbeiten zu lassen. – opiethehokie
Es sollte auf allen Plattformen funktionieren, wenn es nicht ein Fehler sein könnte. Es gibt einige alte Probleme auf github, vielleicht versuchst du davidfowls Workaround in https://github.com/aspnet/Hosting/issues/151, andernfalls versuche ein Problem auf https://github.com/aspnet/Hosting/issues zu öffnen ein Fehler, es ist immer noch in RC1 Vorbereitung für RC2 – Tseng
@opiethehokie: Auch möglicherweise im Zusammenhang mit https://github.com/aspnet/Hosting/issues/516. Es ist für Linux, aber SIGINT und SIGTERM werden auch auf MacOS verwendet, soweit ich weiß. Nicht vertraut genug, um zu wissen, welches der Signale MacOS sendet, um den Prozess zu stoppen. Auch kann es interessant sein zu wissen, ob Sie dnx core 1.0 oder gegen das volle mono framework – Tseng