Frage

Ich bin die Entwicklung einer (relativ kleinen) website ASP.Net 2.0.Ich bin auch mit nAnt zu führen Sie einige einfache Optimierungen an meinem Projekt vor der Auslieferung ausführbare Dateien.In seinem aktuellen Zustand, die website ist "vorkompiliert" mit

aspnet_compiler.exe -nologo -v ${Appname} -u ${target}

Ich habe bemerkt, dass nach der IIS-pool neu gestartet wird (nach einem im Leerlauf Herunterfahren oder recyceln Sie), ist die Anwendung dauert bis zu 20 Sekunden, bevor es wieder online ist (und Application_start erreicht ist).

Ich habe nicht das gleiche Problem, wenn ich das debugging direkt in Visual Studio (es dauert 2 Sekunden, um zu starten), so Frage ich mich, ob die aspnet_compiler ist wirklich so eine gute Idee.

Ich konnte nicht viel auf der MSDN-Website.Wie kompilieren Sie Ihre websites für die Produktion?

War es hilfreich?

Lösung

Stellen Sie sicher, dass:

  1. Sie sind ein webanwendungsprojekt mit statt einem Web-Site-Projekt, das hinter in einem vorkompilierte Binary für Ihren Code führt
  2. Sie haben Debug-Code-Generierung in der Datei web.config deaktiviert - Ich denke, wenn dies anders ist, wenn Sie verwendet aspnet_compiler der Code neu kompiliert werden kann

Wenn Sie diejenigen versucht haben, könnten Sie vielleicht versuchen ngen über Ihre Montage läuft somit die JIT-Zeit zu sparen?

Andere Tipps

Für die ultimative reponsiveness nicht erlauben, Ihre App abgeschaltet werden.

Die erste Methode ist, um sicherzustellen, dass es unglaublich beliebt ist so, dass es immer ist jemand es zu benutzen.

Alternativ eine winzige Keep-Alive-Seite von irgendwo anders als eine geplanten Aktivität Abrufen verwendet werden kann Ihre Website ‚heiß‘ zu halten.

Wenn Ihre Website als aktualisierbar kompiliert wird, werden Sie eine Reihe von ASPX-Dateien in Ihrem virtuellen Verzeichnis. Diese müssen beim Start kompiliert werden. Das ist so können Sie kommen in und verändern die Web-UI selbst. Dies ist standardmäßig sowohl für Websites und Web-Anwendungen.

Stellen Sie sicher, dass dies in web.config <compilation debug=false> gesetzt. In meinem Fall habe ich auch eine Batch-Datei, die Anfragen für alle Hauptseiten Get ausgeben, bevor die Benutzer (Seite Laden-Simulation) zu geben.

Der Schlüssel ist die IIS Application Pool nie heruntergefahren, um sicherzustellen. Dies ist, wo der Code tatsächlich gehostet wird. Stellen Sie den „Idle Timeout“ (unter Erweiterte Einstellungen), um etwas wirklich hoch wie 1440 Minuten (24 Stunden), um sicherzustellen, dass es nicht so lange stillgelegt, wie jemand schlägt Ihre Website einmal pro Tag.

Sie sind immer noch die JIT-Zeit haben, wenn Sie neuen Code bereitstellen, oder wenn diese Leerlaufzeitperiode witout jeden Verkehr überschritten wird.

Konfigurieren von IIS 7.x Idle Timeout

@ Simon:

  • Das Projekt ist eine Web-Anwendung. Websites sind dann langsamer bis zur Inbetriebnahme (ich hatte keine Ahnung, dass es eine Inzidenz hatte, neben der anderen Code Organisation)?
  • Ich habe, und während ich die web.config bearbeiten, nachdem aspnet_compiler genannt wird, ich nicht berühren den Debug-Wert (Ich werde aber überprüfen Sie die Website nicht schneller zum Start, wenn ich die web.config nicht berühren, nur um sicherzugehen)

(Und ich werde auf jeden Fall einen Blick auf ngen hat, ich war nicht bewusst, dass Werkzeug.)

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