Gibt es eine empfohlene Möglichkeit, eine asp.net-Anwendung neben dem Berühren von web.config in der Anwendung zu bouncen? ist HttpRuntime.UnloadAppDomain()
; der bevorzugte Weg, dies zu tun? und wenn ja, wo machst du das? Beim Entladen einer Seite oder eines anderen Ortes in der Anwendung?Wie man asp.net-Anwendung neben dem Ändern von web.config neustarten
Antwort
Wenn dies .NET 2.0 oder höher ist, können Sie eine Datei "App_offline.htm" hinzufügen, eine Anforderung an den Server senden, sie entfernen und dann eine weitere Anforderung an den Server senden.
Diese Sequenz von Ereignissen wird ASP.NET zwingen, die Anwendung so lange zu entladen, wie die Datei app_offline.htm in dem Ordner vorhanden ist.
Scott Guthrie Blog-Eintrag auf sie: http://weblogs.asp.net/scottgu/archive/2005/10/06/426755.aspx
Sie können den mit der App verknüpften Anwendungspool auch anhalten und starten.
aber das ist von IIS richtig. In einigen Fällen habe ich möglicherweise keinen Zugriff auf die IIS-Box, daher suche ich nach etwas Programmatischem. – MikeJ
Sie können den Anwendungspool mit WMI recyceln: http://blogs.iis.net/chrisad/archive/2006/08/30/Recycling-Application-Pools-using-WMI-in-IIS-6.0.aspx – Portman
cool. Ich wusste das nicht – MikeJ
Berühren web.config aus innerhalb einer Anwendung ist eine schlechte Idee, IMO. Auch die Idee, eine Datei zu haben, die du veränderst, ist ein wenig Hackney, IMO.
Die Dokumentation ausdrücklich bestimmt, dass UnloadAppDomain
die Anwendung geschlossen wird unten:
UnloadAppDomain programmatische Abschaltung nicht genutzter Anwendungen ermöglicht.
Sie sollten in der Lage sein, diesen Anruf überall in der Anwendung zu tätigen. Beachten Sie, dass Sie möglicherweise eine SecurityException
erhalten, stellen Sie also sicher, dass die Laufzeitumgebung Ihnen die entsprechenden Berechtigungen erteilt (Sie könnten diese in eine Bibliothek stellen und einen Anruf tätigen und dann die Bibliothek im GAC mit Beweisen für vollständiges Vertrauen einrichten).
ja. Deshalb habe ich gefragt. web.config Änderung schien hässlich und wahrscheinlich, uns auf thedailyWTF.com geschrieben zu bekommen :) – MikeJ
Ich denke, eine bessere Zeile zu zitieren wäre: "Beendet die aktuelle Anwendung. Die Anwendung startet das nächste Mal, wenn eine Anfrage dafür erhalten wird." Der "unbenutzte" Teil in diesem Zitat könnte als "wird nur heruntergefahren, wenn niemand es benutzt" gelesen werden, was nicht der Fall ist. –
Verwenden Sie System.Web.HttpRuntime.UnloadAppDomain() –
Wenn Sie den App-Pool nicht stoppen und starten möchten, können Sie ihn jederzeit recyceln.
Sie können dies durch den Aufruf der HttpRuntime.ShutdownAppDomain Methode (Sie müssen Reflexion verwenden, um es zu berufen, da es sich um eine private statische Methode)
How to restart an IIS Worker Process programmatically (i.e. shutdown the current ASP.NET Domain) Siehe zum Beispiel, wie ich Verwenden Sie diese Methode in einer REST-API für den Neustart.
Sie können eine Webanwendung problemlos neu starten, indem Sie einen Ordner zur Laufzeit im Anwendungsverzeichnis erstellen oder umbenennen. Offensichtlich müssen Sie dem Benutzer, der zum Ausführen der Anwendung berechtigt ist, die Berechtigung "Ändern" für das Webverzeichnis oder für ein Unterverzeichnis darunter erteilen.
das Verfahren erwähnt bei http://www.bartlannoeye.be/blog/restarting-a-.net-web-application-without-restarting-iis
habe ich den folgenden Code, um es in meinem Fall zu tun. Ändern Sie es, um auf einem "schreibbaren" Unterverzeichnis zu arbeiten
gut das funktioniert nicht für mich. Ich sehe das Verzeichnis, das erstellt wird, aber das Ereignis application_Start wird nicht aufgerufen! – KMX
Dieser Bart Lannoeye Link scheint tot zu sein – brennanyoung
dieser Code funktioniert für mich. rufen Sie es einfach auf, um die Anwendung neu zu laden.
System.Web.HttpRuntime.UnloadAppDomain();
Diese Methode wird nur unsere Anwendung entladen.Wenn Sie diese Methode in eine ASP.NET-Web-Schaltfläche einfügen, sind Sie völlig fertig. Wann wird unsere Anwendung neu geladen? Wenn Sie auf Ihre Schaltfläche klicken, wird zuerst unsere Methode gestartet und die Anwendung wird entladen. Weiter wird auf der Webseite, auf der wir gerade sind, auch neu geladen, da wir nur einen Knopf geklickt haben und die Webseite sich aktualisieren sollte. Nach dem Start unserer Methode führt der Seitenaktualisierungsprozess dazu, dass unsere Anwendung erneut geladen wird.
Scheint gut zu funktionieren, und auf jeden Fall die einfachste Lösung hier gegeben! –
- 1. Ändern von web.config in der Teamstadt
- 2. Neustarten/Ausschalten von Android-Emulator
- 3. Web.config programmgesteuert ändern: Abschnitt "BuildProviders"
- 4. Web.Config Transform keine Werte ändern
- 5. Wie Knoten App automatisch neustarten?
- 6. MVC 4-Formularauthentifizierung - Kein Zugriff auf eine andere Aktion neben dem auf der web.config erklärte
- 7. Schriftart für Text neben Optionsfeld ändern? neben einem Radiobutton
- 8. Counter neben dem Symbol wie Facebook
- 9. Neustarten (Wiederverwendung) eines Anwendungspools
- 10. DSC-Konfiguration hält Neustarten
- 11. Neustarten einer Website von einer eigenen Webseite
- 12. Neustarten Upstart Instanz verarbeitet
- 13. Neustarten von Windows aus einer .NET-Anwendung
- 14. Bootstrap: Wie man Knopf neben Eingabegruppe setzt
- 15. Neustarten Primary Key
- 16. Aktualisieren/Neustarten von PowerShell-Sitzung ohne Beenden
- 17. Wie konfiguriert man SMTP-Einstellungen in web.config
- 18. Aufschalten machine.config von web.config
- 19. Wie system.web Abschnitt von web.config
- 20. Wie definiert man die Verwendung von Anweisungen in web.config?
- 21. Unter Variablen aus dem web.config zuweisen dynamisch
- 22. Wie eine Erweiterung von iis web.config
- 23. Was bedeutet die Zahl neben dem Symbol?
- 24. Aktuellen web.config mit benutzerdefiniertem Nuget-Paket ändern
- 25. Pod Container hält auf Neustarten
- 26. neustarten Mail mit Wand Nachricht
- 27. URL-Rewrite-Regel in Web.Config ändern von Code C#
- 28. Positionstext rechts neben dem Logo png image
- 29. Mysteriöse Nummer neben dem Dateinamen in PhpStorm
- 30. Wie kann ich Radioknöpfe rechts neben dem zugehörigen Text ausrichten?
tut nicht nur das System offline. Ich möchte es mit sauberem Cache/Sitzung und dergleichen neu starten/neu laden. Wenn ich die app_offline.htm entferne, wird sie standardmäßig wiederhergestellt. – MikeJ
@MikeJ - nein. Es fährt die App herunter und entlädt die App-Domäne vom Server, bis die Datei entfernt wird. –
@MikeJ - Bitte beachten Sie auch, dass dies keine programmatische Änderung ist. Sie müssen die Datei physisch hinzufügen und entfernen, damit sie funktioniert –