Die ASP.Net-Anwendung wird beim ersten Mal langsam ausgeführt

Ich habe eine Webanwendung in ASP.Net 3.0 mit C # geschrieben, die Produktionsmaschine ist ein Windows Server 2003 mit IIS 6.0 und SQL Server 2005.

Anwendungsstruktur

Das Folgende zeigt die Struktur meiner ASP.net-Webanwendung:

Die Stammanwendung in IIS (// localhost / es) enthält die allgemeinen Seiten, zum Beispiel: Masterseiten, Thema, Benutzersteuerung, Bilderordner. Anzahl der Unterprojekte unter der Stammanwendung (// localhost / es / Unterprojekt). Löschen Sie die Datei web.config in Unterprojekten. Assemble-Dateien von Unterprojekten befinden sich im Ordner bin der Stammanwendung (Eigenschaften des Unterprojekts >> Kompilieren >> Ausgabepfad erstellen: .. \ bin \ Meine Anwendung ist eine dreistufige Webanwendung ( Biasness-Layer, Data-Layer und Presentation-Layer. Außerdem hat jede Aspx-Seite ihren Code hinter der cs-Datei.

IIS-Einstellungen

Anwendungspool Recycling-Worker-Prozess nach "1740 in Minuten" Leerlauf-Timeout-Worker-Prozesse nach dem Leerlauf "20 in Minuten" Ping-Worker-Prozess alle "30 Sekunden"
Startzeitlimit für Worker-Prozessor "90 Sekunden" Shoutdown-Zeitlimit für Worker-Prozessor "90 Sekunden"

Anwendungskonfiguration
Cache begrenzte ASP-Dateien im Speicher "500"

Cache begrenzte ASP-Dateien auf der Festplatte "2000"

Anwendung bereitstellen:

Ich veröffentliche die Webanwendung mit all ihren Dateien auf dem Produktionsserver.

Das Problem :

Die Anwendung läuft beim ersten Mal ziemlich langsam, das Laden dauert mehr als 10 Sekunden, aber jedes Mal, wenn eine Seite beim nächsten Mal angefordert wird, ist sie schneller. Ich glaube, dass das erste Mal, wenn eine Seite angefordert wird, kompiliert wird und es normalerweise mehr Zeit dauert als das andere Anfordern, da sich die Seite im Cache-Speicher befindet.Die Frage ist hier, warum das erstmalige Kompilieren der Seite einige Zeit in Anspruch nimmt.

Versuche, das Problem zu lösen:

Ich habe Folgendes versucht:

Bereitstellen einer Kopie der erforderlichen Dateien auf dem Produktionsserver.Geänderte IIS-Einstellungen, geändertes Zeitlimit für Leerlauf beim Herunterfahren des ArbeitsprozessesDeaktivieren Sie die AblaufverfolgungDeaktivieren Sie den SitzungsstatusDeaktivieren Sie den Anzeigestatus einer SeiteSetzen Sie in web.config debug = falseDas Erstellen eines Hallo-Welt-Unterprojekts unter der Stammanwendung dauert 5 Sekunden.Das Erstellen einer separaten Hallo-Wort-Webanwendung, wie oben, dauert lange.Entfernen Sie den Code in der Ereignisbehandlungsroutine page_load, ohne die Leistung zu beeinträchtigen.Veröffentlichen Sie nur die benötigte Datei der Root-Anwendung (kein Code im Code dahinter) und alle Dateien im Quellcode des Unterprojekts (Code im Code dahinter).

Die Anwendung startet zwar immer noch langsam, wird dann aber schneller.

Bitte helfen Sie bei der Diagnose und Lösung dieses Problems.

Antworten auf die Frage(9)

Ihre Antwort auf die Frage