2017-04-13 9 views
4

Ich möchte einige .NET Core-Anwendungen in die Produktion verschieben und mit dem alten .NET-Framework konnten Sie die kompilierten DLLs für den Anwendungscode jederzeit aktualisieren.Gibt es eine Möglichkeit, eine .NET Core-Anwendung "zu veröffentlichen"?

Wenn der Anwendungspool das nächste Mal wiederverwendet wird, erhalten Sie Ihren neuen Code - oder Sie können den App-Pool manuell recyceln.

Mit .NET Core scheint es, dass die ausgeführte Anwendung die DLL sperrt und sie kann nicht überschrieben werden, bis entweder der Prozess durch Inaktivität geschlossen wird oder über den Task-Manager (Windows Server hier) beendet wird.

Ist die bevorzugte Methode, eine neue Version zu veröffentlichen, ohne ein Wartungsfenster für alle Benutzer festlegen zu müssen? Dies ist auf einem Windows 2012 R2-Server, auf dem das .NET Core-Framework über IIS 8 und den App Pool ohne verwalteten Code ausgeführt wird.

+1

FYI: ASP.NET Core + IIS wird dieses Modul behandelt: https://github.com/aspnet/AspNetCoreModule. Es könnte eine coole Funktion sein, die sie hinzufügen könnten. – natemcmaster

Antwort

3

Für ASP.NET Core mit Kestrel gehostet läuft in separaten Prozess und IIS funktioniert wie Reverse Proxy. Es gibt also keinen Weg für die DLL-Veröffentlichung, es sei denn, Sie implementieren es Ihre Anwendung.

Set up a hosting environment for ASP.NET Core on Windows with IIS, and deploy to it Abschnitt Bereitstellen der Anwendung, Punkt 4.

Wenn Sie Ausfallzeiten einfach Setup zwei Websites auf IIS mit dem gleichen Satz von Einstellungen vermeiden möchten, ein Update auf der zweiten Website machen, setzen Sie zuerst nach unten, und der zweite starten.

+0

Ich habe das versucht und habe zwei Verzeichnisse nebeneinander, dann den Pfad zu dem neuen ändern. Beide Methoden haben alle aktuellen Threads heruntergefahren und einen neuen Prozess gestartet, der 500 Fehler für alle aktuellen Anfragen verursacht, also keine ideale Lösung. Das beste, was ich mir ausgedacht habe, ist in ruhigen Zeiten, beginne die Kopie, warte bis es einsperrt und dann den App-Pool recycelt und die Kopie fortsetze - wenn ich Finger und Maus brauche, wird es in der Regel rechtzeitig kopiert. – RemarkLima

Verwandte Themen