Frage

Was kann ich tun, um sicherzustellen, dass, wenn eine Anwendung / app-Pool Neustart ausgelöst wird, dass die Anwendung online ist wieder so schnell wie möglich?

Noch besser wäre es, gibt es eine Möglichkeit, den Neustart der Anwendung zu verhindern, wenn die üblichen Auslöser auftreten? Wie Ändern der web.config, global.asax oder machine.config?

War es hilfreich?

Lösung

Es wird eine "Auto-Start" -Funktion in ASP.NET 4.0 ( Scott Guthrie spricht darüber ), aber das wird Sie jetzt nicht helfen.

Bitte achten Sie darauf, dass die Anwendung Pool Ihre Website / Anwendung in läuft, geht nicht auf „sleep“ automatisch. Ein Standard AppPool wird nach 20 Minuten inactivty herunterzufahren. Soweit ich mich erinnere diese wieder aufzubauen nicht die Website machen, sondern macht die erste Anfrage merklich langsamer.

Kleine Anmerkung, ein Website-Projekt auch gebaut werden kann, so dass Ihr App_Code leer sein und Ihre Binärordner wird ein Bündel von .dll (nur verwenden Erstellen> Build-Website) enthalten. Dies wird auf jeden Fall macht die erste Anfrage auf Ihre Website schneller. Ich glaube nicht, eine Website-Anwendung Kick wird in schneller als ein vorkompilierte Website-Projekt , aber es ist nur einfacher zu verwalten.

Andere Tipps

Ja, bewegend auf Web-Anwendungen wird den Neustart-Prozess beschleunigen. Eine andere Sache zu tun wäre, um Ihre global.asax so sauber zu machen wie absolut möglich.

Auch mit Web-Apps, wird die Website einen Neustart tun, wenn eine dieser Konfigurationsdateien geändert werden, oder wenn die Baugruppen in Ihrem bin-Verzeichnis ändern. Sie können dies nicht mehr aufhören.

Restart mal sollte ziemlich schnell sein, um etwa 2 bis 3 Sekunden. Allerdings habe ich einige ziemlich kompliziert global.asax Dateien zu sehen, die einige Domain-Level-Daten einrichten, die auf 20 Sekunden aufnahm. Natürlich war sie bereit, diesen Preis zu zahlen, weil sie einen Teil ihrer normalen Ladezeiten von 3 Sekunden auf 0,1 Sekunden reduziert.

Hauptsächlich verwenden wir Website-Projekte, so dass ich, dass übernehmen die Umstellung auf Webanwendungsprojekte diese beschleunigen würde, da alle Codedateien werden in eine DLL-vorkompiliert.

Wenn Website-Projekte mit , würde ich denken, dass Bewegen App_Code Dateien in eine externe Klassenbibliothek würde auch die Dinge beschleunigen, da der Code vorkompiliert werden würde.

Für Webanwendungsprojekte können Sie ein Web-Bereitstellungsprojekt verwenden ( VS2010 Download-Link ) hat die Website in eine DLL ähnlich einer Website Project vorzukompilieren. Sehen Sie sich die ScottGu Artikel auf, wie WDPs verwenden .

Ich habe ein ähnliches Problem in bekam, dass ich einen sehr hohen Traffic Website renne, dass eine gute 300+ Anfragen bekommt / Sekunde. Ein Neustart dauert gut 90 Sekunden zumindest für sie.

Wenn ich eine Änderung vornehmen, dass der Server neu gestartet wird, scheint es, dass der Neustart an, bis alle alten Anfragen der Nähe (einige von ihnen sehr lange laufen). Ich kann den Neustart passiert viel schneller durch die alte w3wp.exe Instanz manuell zu töten.

Gibt es eine Möglichkeit, um Kraft IIS sofort alle Verbindungen zu schließen und einen harten Neustart tun? Einige Einstellung in IIS oder asp.net dies zu kontrollieren?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top